Diffs are based on 2,490,528 contexts (966,403 MinOpts, 1,524,125 FullOpts).
MISSED contexts: 3 (0.00%)
Overall (-7,470 bytes)
| Collection | Base size (bytes) | Diff size (bytes) | PerfScore in Diffs |
|---|---|---|---|
| aspnet2.run.windows.x64.checked.mch | 5,655,776 | -82 | -0.38% |
| benchmarks.run.windows.x64.checked.mch | 12,859,434 | -108 | -0.80% |
| benchmarks.run_pgo_optrepeat.windows.x64.checked.mch | 12,723,214 | -108 | -0.80% |
| coreclr_tests.run.windows.x64.checked.mch | 339,957,979 | -415 | -3.25% |
| libraries.crossgen2.windows.x64.checked.mch | 41,469,943 | -358 | -4.59% |
| libraries.pmi.windows.x64.checked.mch | 48,588,203 | -535 | -2.20% |
| libraries_tests.run.windows.x64.Release.mch | 333,197,877 | -5,064 | -0.37% |
| libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch | 161,402,272 | -547 | -6.54% |
| realworld.run.windows.x64.checked.mch | 11,584,120 | -218 | -0.96% |
| smoke_tests.nativeaot.windows.x64.checked.mch | 5,520,830 | -35 | -0.90% |
FullOpts (-7,470 bytes)
| Collection | Base size (bytes) | Diff size (bytes) | PerfScore in Diffs |
|---|---|---|---|
| aspnet2.run.windows.x64.checked.mch | 5,247,443 | -82 | -0.38% |
| benchmarks.run.windows.x64.checked.mch | 12,701,851 | -108 | -0.80% |
| benchmarks.run_pgo_optrepeat.windows.x64.checked.mch | 12,561,873 | -108 | -0.80% |
| coreclr_tests.run.windows.x64.checked.mch | 108,744,599 | -415 | -3.25% |
| libraries.crossgen2.windows.x64.checked.mch | 41,468,153 | -358 | -4.59% |
| libraries.pmi.windows.x64.checked.mch | 48,474,770 | -535 | -2.20% |
| libraries_tests.run.windows.x64.Release.mch | 134,582,476 | -5,064 | -0.37% |
| libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch | 149,564,677 | -547 | -6.54% |
| realworld.run.windows.x64.checked.mch | 11,357,979 | -218 | -0.96% |
| smoke_tests.nativeaot.windows.x64.checked.mch | 5,519,147 | -35 | -0.90% |
Example diffs
aspnet2.run.windows.x64.checked.mch
-8 (-2.71%) : 4886.dasm - System.RuntimeType:GetBaseType():System.RuntimeType:this (FullOpts)
@@ -10,10 +10,10 @@
;
; V00 this [V00,T06] ( 7, 5 ) ref -> rbx this class-hnd single-def <System.RuntimeType>
; V01 loc0 [V01,T09] ( 3, 1.50) ref -> rsi class-hnd single-def <System.Type[]>
-; V02 loc1 [V02,T08] ( 5, 4 ) ref -> rdi class-hnd <System.RuntimeType>
+; V02 loc1 [V02,T07] ( 5, 4 ) ref -> rdi class-hnd <System.RuntimeType>
;* V03 loc2 [V03,T12] ( 0, 0 ) int -> zero-ref
; V04 loc3 [V04,T02] ( 5, 14 ) ref -> r14 class-hnd exact <System.RuntimeType>
-; V05 loc4 [V05,T07] ( 3, 6 ) int -> rax
+; V05 loc4 [V05,T08] ( 2, 4 ) int -> rax
; V06 OutArgs [V06 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <UNNAMED>
;* V07 cse0 [V07,T11] ( 0, 0 ) byref -> zero-ref "CSE #03: aggressive"
; V08 cse1 [V08,T10] ( 3, 1.50) int -> rbp "CSE #01: aggressive"
@@ -126,12 +126,9 @@ G_M56028_IG10: ; bbWeight=2, gcrefRegs=4088 {rbx rdi r14}, byrefRegs=0040
call [System.RuntimeType:get_GenericParameterAttributes():int:this]
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M56028_IG12
- ;; size=33 bbWeight=2 PerfScore 15.50
+ ;; size=25 bbWeight=2 PerfScore 14.00
G_M56028_IG11: ; bbWeight=2, gcrefRegs=4008 {rbx r14}, byrefRegs=0040 {rsi}, byref
; gcrRegs -[rdi]
mov rdi, r14
@@ -200,7 +197,7 @@ G_M56028_IG19: ; bbWeight=0, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byr
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 295, prolog size 10, PerfScore 98.38, instruction count 92, allocated bytes for code 295 (MethodHash=370d2523) for method System.RuntimeType:GetBaseType():System.RuntimeType:this (FullOpts)
+; Total bytes of code 287, prolog size 10, PerfScore 96.88, instruction count 89, allocated bytes for code 287 (MethodHash=370d2523) for method System.RuntimeType:GetBaseType():System.RuntimeType:this (FullOpts)
; ============================================================
Unwind Info:-5 (-1.09%) : 4836.dasm - System.Sha1ForNonSecretPurposes:Drain(System.Span`1[uint]) (FullOpts)
@@ -9,7 +9,7 @@
;
; V00 arg0 [V00,T20] ( 4, 8 ) byref -> rcx ld-addr-op single-def
; V01 loc0 [V01,T03] ( 14, 97.04) int -> registers
-; V02 loc1 [V02,T00] ( 16,112.88) int -> registers
+; V02 loc1 [V02,T00] ( 15,104.96) int -> registers
; V03 loc2 [V03,T01] ( 15,104.96) int -> registers
; V04 loc3 [V04,T02] ( 15,104.96) int -> registers
; V05 loc4 [V05,T05] ( 10, 65.36) int -> registers
@@ -143,13 +143,11 @@ G_M28360_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {rax}, byr
mov ebx, 40
;; size=5 bbWeight=1 PerfScore 0.25
G_M28360_IG09: ; bbWeight=7.92, gcrefRegs=0000 {}, byrefRegs=0001 {rax}, byref, isz
- mov esi, r8d
- and esi, r10d
- mov edi, r8d
- and edi, r9d
- or esi, edi
+ mov esi, r10d
+ and esi, r9d
mov edi, r10d
- and edi, r9d
+ or edi, r9d
+ and edi, r8d
or esi, edi
mov edi, edx
rol edi, 5
@@ -167,7 +165,7 @@ G_M28360_IG09: ; bbWeight=7.92, gcrefRegs=0000 {}, byrefRegs=0001 {rax},
mov r10d, r8d
mov r8d, ebp
jl SHORT G_M28360_IG09
- ;; size=72 bbWeight=7.92 PerfScore 77.22
+ ;; size=67 bbWeight=7.92 PerfScore 73.26
G_M28360_IG10: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {rax}, byref
mov ebx, 60
;; size=5 bbWeight=1 PerfScore 0.25
@@ -222,7 +220,7 @@ G_M28360_IG14: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 459, prolog size 8, PerfScore 439.96, instruction count 137, allocated bytes for code 459 (MethodHash=c3689137) for method System.Sha1ForNonSecretPurposes:Drain(System.Span`1[uint]) (FullOpts)
+; Total bytes of code 454, prolog size 8, PerfScore 436.00, instruction count 135, allocated bytes for code 454 (MethodHash=c3689137) for method System.Sha1ForNonSecretPurposes:Drain(System.Span`1[uint]) (FullOpts)
; ============================================================
Unwind Info:-9 (-0.30%) : 7716.dasm - Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketConnection+<DoReceive>d__27:MoveNext():this (FullOpts)
@@ -9,16 +9,16 @@
; Final local variable assignments
;
; V00 this [V00,T00] ( 50, 43 ) byref -> [rbp+0x10] this EH-live single-def
-; V01 loc0 [V01,T30] ( 5, 4.75) int -> rcx single-def
+; V01 loc0 [V01,T29] ( 5, 4.75) int -> rcx single-def
; V02 loc1 [V02,T02] ( 30, 24 ) ref -> [rbp-0xE0] class-hnd exact EH-live spill-single-def <Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketConnection>
; V03 loc2 [V03 ] ( 2, 2 ) struct (16) [rbp-0x38] do-not-enreg[XDAS] must-init addr-exposed defined-via-address <System.Memory`1[byte]>
;* V04 loc3 [V04 ] ( 0, 0 ) struct (16) zero-ref <Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketOperationResult>
;* V05 loc4 [V05 ] ( 0, 0 ) int -> zero-ref
-; V06 loc5 [V06,T42] ( 4, 4 ) struct (16) [rbp-0x48] do-not-enreg[DAS] must-init defined-via-address ld-addr-op <System.Threading.Tasks.ValueTask`1[System.IO.Pipelines.FlushResult]>
+; V06 loc5 [V06,T41] ( 4, 4 ) struct (16) [rbp-0x48] do-not-enreg[DAS] must-init defined-via-address ld-addr-op <System.Threading.Tasks.ValueTask`1[System.IO.Pipelines.FlushResult]>
;* V07 loc6 [V07 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.IO.Pipelines.FlushResult>
;* V08 loc7 [V08 ] ( 0, 0 ) struct (16) zero-ref <Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketOperationResult>
; V09 loc8 [V09 ] ( 18, 18 ) struct (32) [rbp-0x68] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.ValueTaskAwaiter`1[Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketOperationResult]>
-; V10 loc9 [V10,T43] ( 4, 4 ) struct (32) [rbp-0x88] do-not-enreg[DAS] must-init defined-via-address ld-addr-op <System.Threading.Tasks.ValueTask`1[Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketOperationResult]>
+; V10 loc9 [V10,T42] ( 4, 4 ) struct (32) [rbp-0x88] do-not-enreg[DAS] must-init defined-via-address ld-addr-op <System.Threading.Tasks.ValueTask`1[Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketOperationResult]>
;* V11 loc10 [V11 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.Threading.CancellationToken>
; V12 loc11 [V12 ] ( 9, 9 ) struct (16) [rbp-0x98] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.ValueTaskAwaiter`1[System.IO.Pipelines.FlushResult]>
;* V13 loc12 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd <<unknown class>>
@@ -33,7 +33,7 @@
; V22 tmp4 [V22,T45] ( 2, 4 ) ref -> rdx class-hnd single-def "dup spill" <System.Exception>
; V23 tmp5 [V23,T10] ( 3, 6 ) ref -> rax class-hnd single-def "impSpillLclRefs" <System.IO.Pipelines.PipeWriter>
;* V24 tmp6 [V24 ] ( 0, 0 ) ref -> zero-ref single-def
-; V25 tmp7 [V25,T31] ( 4, 4 ) ref -> rdx
+; V25 tmp7 [V25,T30] ( 4, 4 ) ref -> rdx
; V26 tmp8 [V26,T69] ( 3, 0 ) ref -> rax class-hnd single-def "dup spill" <System.Exception>
;* V27 tmp9 [V27 ] ( 0, 0 ) ref -> zero-ref single-def
;* V28 tmp10 [V28 ] ( 0, 0 ) int -> zero-ref "dup spill"
@@ -47,7 +47,7 @@
; V36 tmp18 [V36,T73] ( 2, 0 ) ref -> rdx class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
;* V37 tmp19 [V37 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[S] ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ValueTaskAwaiter`1[Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketOperationResult]>
;* V38 tmp20 [V38 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V39 tmp21 [V39,T32] ( 4, 4 ) ref -> rbx class-hnd "Inline stloc first use temp" <System.Object>
+; V39 tmp21 [V39,T31] ( 4, 4 ) ref -> rbx class-hnd "Inline stloc first use temp" <System.Object>
; V40 tmp22 [V40,T56] ( 3, 3 ) ref -> rax class-hnd "Inline stloc first use temp" <System.Threading.Tasks.Task`1[Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketOperationResult]>
;* V41 tmp23 [V41 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" <<unknown class>>
;* V42 tmp24 [V42 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
@@ -55,12 +55,12 @@
;* V44 tmp26 [V44 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V45 tmp27 [V45 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <<unknown class>>
; V46 tmp28 [V46 ] ( 4, 4 ) struct (16) [rbp-0xB0] do-not-enreg[XDAS] must-init addr-exposed defined-via-address "Inline return value spill temp" <Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketOperationResult>
-; V47 tmp29 [V47,T33] ( 4, 4 ) ref -> rbx class-hnd "Inline stloc first use temp" <System.Object>
+; V47 tmp29 [V47,T32] ( 4, 4 ) ref -> rbx class-hnd "Inline stloc first use temp" <System.Object>
; V48 tmp30 [V48,T24] ( 5, 5 ) ref -> r14 class-hnd "Inline stloc first use temp" <System.Threading.Tasks.Task`1[Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketOperationResult]>
;* V49 tmp31 [V49 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" <<unknown class>>
;* V50 tmp32 [V50 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[S] ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ValueTaskAwaiter`1[Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketOperationResult]>
;* V51 tmp33 [V51 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V52 tmp34 [V52,T34] ( 4, 4 ) ref -> rbx class-hnd "Inline stloc first use temp" <System.Object>
+; V52 tmp34 [V52,T33] ( 4, 4 ) ref -> rbx class-hnd "Inline stloc first use temp" <System.Object>
; V53 tmp35 [V53,T57] ( 3, 3 ) ref -> rax class-hnd "Inline stloc first use temp" <System.Threading.Tasks.Task`1[Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketOperationResult]>
;* V54 tmp36 [V54 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" <<unknown class>>
;* V55 tmp37 [V55 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
@@ -68,31 +68,31 @@
;* V57 tmp39 [V57 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V58 tmp40 [V58 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <<unknown class>>
; V59 tmp41 [V59,T27] ( 5, 5 ) struct (16) [rbp-0xC0] do-not-enreg[DAS] must-init defined-via-address "Inline return value spill temp" <Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketOperationResult>
-; V60 tmp42 [V60,T35] ( 4, 4 ) ref -> rbx class-hnd "Inline stloc first use temp" <System.Object>
+; V60 tmp42 [V60,T34] ( 4, 4 ) ref -> rbx class-hnd "Inline stloc first use temp" <System.Object>
; V61 tmp43 [V61,T25] ( 5, 5 ) ref -> r14 class-hnd "Inline stloc first use temp" <System.Threading.Tasks.Task`1[Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketOperationResult]>
;* V62 tmp44 [V62 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" <<unknown class>>
; V63 tmp45 [V63,T11] ( 3, 6 ) ref -> rbx class-hnd "Inlining Arg" <Microsoft.Extensions.Logging.ILogger>
;* V64 tmp46 [V64 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.String>
; V65 tmp47 [V65,T46] ( 2, 4 ) ref -> r14 class-hnd exact "dup spill" <System.String>
-; V66 tmp48 [V66,T36] ( 4, 4 ) ref -> r14
+; V66 tmp48 [V66,T35] ( 4, 4 ) ref -> r14
; V67 tmp49 [V67,T12] ( 3, 6 ) ref -> r14 class-hnd exact "dup spill" <System.String>
;* V68 tmp50 [V68 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.String>
;* V69 tmp51 [V69 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V70 tmp52 [V70,T44] ( 4, 4 ) ubyte -> rcx "Inline return value spill temp"
-; V71 tmp53 [V71,T37] ( 4, 4 ) ref -> rbx class-hnd "Inline stloc first use temp" <System.Object>
+; V70 tmp52 [V70,T43] ( 4, 4 ) ubyte -> rcx "Inline return value spill temp"
+; V71 tmp53 [V71,T36] ( 4, 4 ) ref -> rbx class-hnd "Inline stloc first use temp" <System.Object>
; V72 tmp54 [V72,T58] ( 3, 3 ) ref -> rax class-hnd "Inline stloc first use temp" <System.Threading.Tasks.Task`1[System.IO.Pipelines.FlushResult]>
;* V73 tmp55 [V73 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" <<unknown class>>
;* V74 tmp56 [V74 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V75 tmp57 [V75,T13] ( 3, 6 ) ref -> rbx class-hnd "Inlining Arg" <Microsoft.Extensions.Logging.ILogger>
;* V76 tmp58 [V76 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.String>
; V77 tmp59 [V77,T47] ( 2, 4 ) ref -> r14 class-hnd exact "dup spill" <System.String>
-; V78 tmp60 [V78,T38] ( 4, 4 ) ref -> r14
+; V78 tmp60 [V78,T37] ( 4, 4 ) ref -> r14
; V79 tmp61 [V79,T14] ( 3, 6 ) ref -> r14 class-hnd exact "dup spill" <System.String>
;* V80 tmp62 [V80 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.String>
;* V81 tmp63 [V81 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V82 tmp64 [V82 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ValueTaskAwaiter`1[System.IO.Pipelines.FlushResult]>
;* V83 tmp65 [V83 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V84 tmp66 [V84,T39] ( 4, 4 ) ref -> rbx class-hnd "Inline stloc first use temp" <System.Object>
+; V84 tmp66 [V84,T38] ( 4, 4 ) ref -> rbx class-hnd "Inline stloc first use temp" <System.Object>
; V85 tmp67 [V85,T59] ( 3, 3 ) ref -> rax class-hnd "Inline stloc first use temp" <System.Threading.Tasks.Task`1[System.IO.Pipelines.FlushResult]>
;* V86 tmp68 [V86 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" <<unknown class>>
;* V87 tmp69 [V87 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
@@ -100,13 +100,13 @@
;* V89 tmp71 [V89 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V90 tmp72 [V90 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <<unknown class>>
;* V91 tmp73 [V91 ] ( 0, 0 ) struct ( 8) zero-ref "Inline return value spill temp" <System.IO.Pipelines.FlushResult>
-; V92 tmp74 [V92,T40] ( 4, 4 ) ref -> rbx class-hnd "Inline stloc first use temp" <System.Object>
+; V92 tmp74 [V92,T39] ( 4, 4 ) ref -> rbx class-hnd "Inline stloc first use temp" <System.Object>
; V93 tmp75 [V93,T26] ( 5, 5 ) ref -> r14 class-hnd "Inline stloc first use temp" <System.Threading.Tasks.Task`1[System.IO.Pipelines.FlushResult]>
;* V94 tmp76 [V94 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" <<unknown class>>
; V95 tmp77 [V95,T15] ( 3, 6 ) ref -> r14 class-hnd "Inlining Arg" <Microsoft.Extensions.Logging.ILogger>
;* V96 tmp78 [V96 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.String>
; V97 tmp79 [V97,T48] ( 2, 4 ) ref -> r15 class-hnd exact "dup spill" <System.String>
-; V98 tmp80 [V98,T41] ( 4, 4 ) ref -> r15
+; V98 tmp80 [V98,T40] ( 4, 4 ) ref -> r15
; V99 tmp81 [V99,T16] ( 3, 6 ) ref -> r15 class-hnd exact "dup spill" <System.String>
;* V100 tmp82 [V100 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.String>
;* V101 tmp83 [V101 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
@@ -143,7 +143,7 @@
;* V132 tmp114 [V132 ] ( 0, 0 ) int -> zero-ref "field V08.BytesTransferred (fldOffset=0x8)" P-INDEP
;* V133 tmp115 [V133 ] ( 0, 0 ) ref -> zero-ref "field V11._source (fldOffset=0x0)" P-INDEP
; V134 tmp116 [V134 ] ( 6, 6 ) ref -> [rbp-0xA0] do-not-enreg[X] addr-exposed "field V16.m_task (fldOffset=0x0)" P-DEP
-; V135 tmp117 [V135,T29] ( 5, 5 ) ubyte -> rbx "field V91._resultFlags (fldOffset=0x0)" P-INDEP
+; V135 tmp117 [V135,T44] ( 4, 4 ) ubyte -> rbx "field V91._resultFlags (fldOffset=0x0)" P-INDEP
;* V136 tmp118 [V136 ] ( 0, 0 ) ref -> zero-ref single-def "field V104.m_task (fldOffset=0x0)" P-INDEP
; V137 tmp119 [V137,T19] ( 3, 6 ) ref -> rax "argument with side effect"
; V138 tmp120 [V138 ] ( 2, 4 ) struct (16) [rbp-0xD8] do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketOperationResult>
@@ -848,12 +848,9 @@ G_M59369_IG59: ; bbWeight=1, gcrefRegs=C080 {rdi r14 r15}, byrefRegs=0040
;; size=29 bbWeight=1 PerfScore 8.00
G_M59369_IG60: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0040 {rsi}, byref
movzx rax, bl
- and eax, 2
- movzx rcx, bl
- and ecx, 1
- or eax, ecx
+ test al, 3
jne G_M59369_IG75
- ;; size=20 bbWeight=1 PerfScore 2.25
+ ;; size=11 bbWeight=1 PerfScore 1.50
G_M59369_IG61: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0040 {rsi}, byref
cmp gword ptr [rdi+0x120], 0
jne G_M59369_IG75
@@ -1417,7 +1414,7 @@ RWD00 dd G_M59369_IG20 - G_M59369_IG02
dd G_M59369_IG11 - G_M59369_IG02
-; Total bytes of code 2951, prolog size 81, PerfScore 869.58, instruction count 662, allocated bytes for code 2951 (MethodHash=af721816) for method Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketConnection+<DoReceive>d__27:MoveNext():this (FullOpts)
+; Total bytes of code 2942, prolog size 81, PerfScore 868.83, instruction count 659, allocated bytes for code 2942 (MethodHash=af721816) for method Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketConnection+<DoReceive>d__27:MoveNext():this (FullOpts)
; ============================================================
Unwind Info:-10 (-0.15%) : 9748.dasm - Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketConnection+<DoReceive>d__27:MoveNext():this (Tier1)
@@ -10,7 +10,7 @@
; Final local variable assignments
;
; V00 this [V00,T05] ( 53, 17.24) byref -> [rbp+0x10] this EH-live single-def
-; V01 loc0 [V01,T76] ( 6, 3 ) int -> rax single-def
+; V01 loc0 [V01,T75] ( 6, 3 ) int -> rax single-def
; V02 loc1 [V02,T07] ( 35, 15.69) ref -> [rbp-0x110] class-hnd exact EH-live single-def <Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketConnection>
; V03 loc2 [V03 ] ( 7, 10.84) struct (16) [rbp-0x48] do-not-enreg[DAS] must-init defined-via-address <System.Memory`1[byte]>
;* V04 loc3 [V04 ] ( 0, 0 ) struct (16) zero-ref <Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketOperationResult>
@@ -72,7 +72,7 @@
;* V60 tmp42 [V60 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketOperationResult>
;* V61 tmp43 [V61 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[S] ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ValueTaskAwaiter`1[Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketOperationResult]>
;* V62 tmp44 [V62,T133] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V63 tmp45 [V63,T54] ( 7, 3.62) ref -> rbx class-hnd "Inline stloc first use temp" <System.Object>
+; V63 tmp45 [V63,T53] ( 7, 3.62) ref -> rbx class-hnd "Inline stloc first use temp" <System.Object>
; V64 tmp46 [V64,T127] ( 3, 0.80) ref -> r14 class-hnd "Inline stloc first use temp" <System.Threading.Tasks.Task`1[Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketOperationResult]>
;* V65 tmp47 [V65 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" <System.Threading.Tasks.Sources.IValueTaskSource`1[Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketOperationResult]>
; V66 tmp48 [V66,T132] ( 2, 0 ) int -> rax "guarded devirt return temp"
@@ -110,7 +110,7 @@
;* V98 tmp80 [V98 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V99 tmp81 [V99 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V100 tmp82 [V100 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketOperationResult>
-; V101 tmp83 [V101,T57] ( 4, 3.61) byref -> rbx "Inlining Arg"
+; V101 tmp83 [V101,T56] ( 4, 3.61) byref -> rbx "Inlining Arg"
;* V102 tmp84 [V102 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Net.Sockets.SocketException>
; V103 tmp85 [V103,T138] ( 6, 0 ) ref -> r14 class-hnd exact "NewObj constructor temp" <Microsoft.AspNetCore.Connections.ConnectionResetException>
;* V104 tmp86 [V104 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Net.Sockets.SocketException>
@@ -125,13 +125,13 @@
;* V113 tmp95 [V113 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V114 tmp96 [V114 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
; V115 tmp97 [V115,T16] ( 7, 7.38) ref -> [rbp-0x118] do-not-enreg[Z] class-hnd EH-live "Inline stloc first use temp" <System.Object>
-; V116 tmp98 [V116,T62] ( 3, 3.61) ubyte -> [rbp-0xA4] do-not-enreg[Z] ld-addr-op EH-live "Inline stloc first use temp"
+; V116 tmp98 [V116,T61] ( 3, 3.61) ubyte -> [rbp-0xA4] do-not-enreg[Z] ld-addr-op EH-live "Inline stloc first use temp"
; V117 tmp99 [V117,T120] ( 2, 1.22) int -> rdx "Inline stloc first use temp"
;* V118 tmp100 [V118 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.IO.Pipelines.BufferSegment>
; V119 tmp101 [V119,T151] ( 3, 0 ) ref -> rcx class-hnd exact "dup spill" <System.IO.Pipelines.BufferSegment>
;* V120 tmp102 [V120 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.IO.Pipelines.BufferSegment>
;* V121 tmp103 [V121 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.IO.Pipelines.BufferSegment>
-; V122 tmp104 [V122,T63] ( 3, 3.61) int -> rax "Inline return value spill temp"
+; V122 tmp104 [V122,T62] ( 3, 3.61) int -> rax "Inline return value spill temp"
; V123 tmp105 [V123,T26] ( 3, 5.42) int -> rax "Inline stloc first use temp"
; V124 tmp106 [V124,T09] ( 3, 10.84) byref -> rcx "Inlining Arg"
;* V125 tmp107 [V125 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.IO.Pipelines.BufferSegment>
@@ -142,7 +142,7 @@
;* V130 tmp112 [V130 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V131 tmp113 [V131,T14] ( 4, 9.60) byref -> rcx "Inlining Arg"
; V132 tmp114 [V132,T42] ( 4, 4.80) int -> rax "Inline stloc first use temp"
-; V133 tmp115 [V133,T68] ( 3, 3.60) ref -> rdx class-hnd exact "Inline stloc first use temp" <System.IO.Pipelines.BufferSegmentStack+SegmentAsValueType[]>
+; V133 tmp115 [V133,T67] ( 3, 3.60) ref -> rdx class-hnd exact "Inline stloc first use temp" <System.IO.Pipelines.BufferSegmentStack+SegmentAsValueType[]>
;* V134 tmp116 [V134 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.IO.Pipelines.BufferSegmentStack+SegmentAsValueType>
; V135 tmp117 [V135,T22] ( 10, 7.12) ref -> r15 class-hnd "Inline stloc first use temp" <System.Buffers.MemoryPool`1[byte]>
; V136 tmp118 [V136,T24] ( 5, 5.97) int -> r13 "Inline stloc first use temp"
@@ -176,8 +176,8 @@
;* V164 tmp146 [V164 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[S] "Inline return value spill temp" <System.Threading.Tasks.ValueTask`1[Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketOperationResult]>
; V165 tmp147 [V165,T00] ( 28, 60.81) ref -> [rbp-0x120] do-not-enreg[Z] class-hnd exact EH-live "Inlining Arg" <Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketReceiver>
; V166 tmp148 [V166,T10] ( 3, 10.84) ref -> rbx class-hnd "Inlining Arg" <System.Net.Sockets.Socket>
-; V167 tmp149 [V167,T67] ( 2, 3.61) int -> rax "Inline stloc first use temp"
-; V168 tmp150 [V168,T64] ( 3, 3.61) int -> rbx "Inline stloc first use temp"
+; V167 tmp149 [V167,T66] ( 2, 3.61) int -> rax "Inline stloc first use temp"
+; V168 tmp150 [V168,T63] ( 3, 3.61) int -> rbx "Inline stloc first use temp"
;* V169 tmp151 [V169 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketOperationResult>
;* V170 tmp152 [V170 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Threading.Tasks.ValueTask`1[Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketOperationResult]>
;* V171 tmp153 [V171 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketOperationResult>
@@ -185,7 +185,7 @@
;* V173 tmp155 [V173 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.Threading.Tasks.ValueTask`1[Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketOperationResult]>
;* V174 tmp156 [V174 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Memory`1[byte]>
; V175 tmp157 [V175,T152] ( 3, 0 ) ref -> rbx class-hnd exact "NewObj constructor temp" <<unknown class>>
-; V176 tmp158 [V176,T65] ( 3, 3.61) int -> rax "Inline stloc first use temp"
+; V176 tmp158 [V176,T64] ( 3, 3.61) int -> rax "Inline stloc first use temp"
;* V177 tmp159 [V177 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
; V178 tmp160 [V178,T153] ( 3, 0 ) ref -> r15 class-hnd exact "NewObj constructor temp" <System.Net.Sockets.SocketException>
;* V179 tmp161 [V179 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketOperationResult>
@@ -202,13 +202,13 @@
;* V190 tmp172 [V190 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V191 tmp173 [V191 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Runtime.CompilerServices.IAsyncStateMachineBox>
; V192 tmp174 [V192,T49] ( 6, 3.63) struct (16) [rbp-0xC8] do-not-enreg[DAS] must-init defined-via-address "Inline return value spill temp" <Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketOperationResult>
-; V193 tmp175 [V193,T55] ( 7, 3.62) ref -> rbx class-hnd "Inline stloc first use temp" <System.Object>
+; V193 tmp175 [V193,T54] ( 7, 3.62) ref -> rbx class-hnd "Inline stloc first use temp" <System.Object>
; V194 tmp176 [V194,T129] ( 5, 0.80) ref -> r14 class-hnd "Inline stloc first use temp" <System.Threading.Tasks.Task`1[Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketOperationResult]>
;* V195 tmp177 [V195 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" <System.Threading.Tasks.Sources.IValueTaskSource`1[Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketOperationResult]>
;* V196 tmp178 [V196 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketReceiver>
;* V197 tmp179 [V197 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V198 tmp180 [V198 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketOperationResult>
-; V199 tmp181 [V199,T81] ( 4, 2.42) byref -> r15 "Inlining Arg"
+; V199 tmp181 [V199,T80] ( 4, 2.42) byref -> r15 "Inlining Arg"
;* V200 tmp182 [V200 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Net.Sockets.SocketException>
; V201 tmp183 [V201,T154] ( 3, 0 ) ref -> rbx class-hnd exact "NewObj constructor temp" <Microsoft.AspNetCore.Connections.ConnectionResetException>
;* V202 tmp184 [V202 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Net.Sockets.SocketException>
@@ -221,7 +221,7 @@
; V209 tmp191 [V209,T28] ( 7, 4.93) ref -> [rbp-0x128] do-not-enreg[Z] class-hnd EH-live "Inline stloc first use temp" <System.Object>
; V210 tmp192 [V210,T95] ( 3, 2.42) ubyte -> [rbp-0xCC] do-not-enreg[Z] ld-addr-op EH-live "Inline stloc first use temp"
; V211 tmp193 [V211,T96] ( 3, 2.42) int -> rax "Inline return value spill temp"
-; V212 tmp194 [V212,T51] ( 3, 3.63) int -> rax "Inline stloc first use temp"
+; V212 tmp194 [V212,T50] ( 3, 3.63) int -> rax "Inline stloc first use temp"
;* V213 tmp195 [V213 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V214 tmp196 [V214 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V215 tmp197 [V215 ] ( 0, 0 ) struct (16) zero-ref "stack copy for value returned via return buffer" <System.Memory`1[byte]>
@@ -246,7 +246,7 @@
;* V234 tmp216 [V234 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Threading.CancellationTokenSource>
;* V235 tmp217 [V235 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Threading.Tasks.Task`1[System.IO.Pipelines.FlushResult]>
; V236 tmp218 [V236,T98] ( 3, 2.42) int -> rax "Inline return value spill temp"
-; V237 tmp219 [V237,T52] ( 3, 3.63) int -> rax "Inline stloc first use temp"
+; V237 tmp219 [V237,T51] ( 3, 3.63) int -> rax "Inline stloc first use temp"
;* V238 tmp220 [V238 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.Threading.CancellationToken>
; V239 tmp221 [V239,T36] ( 2, 4.83) int -> r14 "impAppendStmt"
;* V240 tmp222 [V240 ] ( 0, 0 ) int -> zero-ref
@@ -273,7 +273,7 @@
;* V261 tmp243 [V261 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.IO.Pipelines.FlushResult>
; V262 tmp244 [V262,T156] ( 3, 0 ) ref -> r15 class-hnd exact "Inlining Arg" <System.IO.Pipelines.Pipe+DefaultPipeWriter>
; V263 tmp245 [V263,T04] ( 9, 21.75) byref -> rcx "Inlining Arg"
-; V264 tmp246 [V264,T73] ( 3, 3.22) ref -> rax class-hnd "Inline stloc first use temp" <System.Action`1[System.Object]>
+; V264 tmp246 [V264,T72] ( 3, 3.22) ref -> rax class-hnd "Inline stloc first use temp" <System.Action`1[System.Object]>
; V265 tmp247 [V265,T112] ( 2, 2.01) ref -> rdx class-hnd "Inline stloc first use temp" <System.Object>
; V266 tmp248 [V266,T30] ( 4, 4.83) ref -> r8 class-hnd exact "dup spill" <System.IO.Pipelines.PipeAwaitable+SchedulingContext>
;* V267 tmp249 [V267 ] ( 0, 0 ) ref -> zero-ref
@@ -292,18 +292,18 @@
;* V280 tmp262 [V280 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.IO.Pipelines.PipeAwaitable+SchedulingContext>
;* V281 tmp263 [V281 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.IO.Pipelines.PipeAwaitable+SchedulingContext>
;* V282 tmp264 [V282 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.IO.Pipelines.PipeOptions>
-; V283 tmp265 [V283,T78] ( 4, 2.77) ref -> rdx class-hnd "Inline stloc first use temp" <System.Action`1[System.Object]>
+; V283 tmp265 [V283,T77] ( 4, 2.77) ref -> rdx class-hnd "Inline stloc first use temp" <System.Action`1[System.Object]>
; V284 tmp266 [V284,T45] ( 5, 3.75) ref -> rcx class-hnd "Inlining Arg" <System.IO.Pipelines.PipeScheduler>
; V285 tmp267 [V285,T119] ( 3, 1.42) ref -> r8 class-hnd "spilling ret_expr" <System.Object>
;* V286 tmp268 [V286 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.IO.Pipelines.ThreadPoolScheduler>
-; V287 tmp269 [V287,T86] ( 4, 2.42) ubyte -> rbx "Inline return value spill temp"
+; V287 tmp269 [V287,T85] ( 4, 2.42) ubyte -> rbx "Inline return value spill temp"
;* V288 tmp270 [V288 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Object>
; V289 tmp271 [V289,T157] ( 3, 0 ) ref -> rax class-hnd "Inline stloc first use temp" <System.Threading.Tasks.Task`1[System.IO.Pipelines.FlushResult]>
;* V290 tmp272 [V290 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" <System.Threading.Tasks.Sources.IValueTaskSource`1[System.IO.Pipelines.FlushResult]>
;* V291 tmp273 [V291 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V292 tmp274 [V292 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ValueTaskAwaiter`1[System.IO.Pipelines.FlushResult]>
; V293 tmp275 [V293,T168] ( 3, 0 ) ubyte -> r14 "Inline return value spill temp"
-; V294 tmp276 [V294,T82] ( 4, 2.42) ref -> rbx class-hnd "Inline stloc first use temp" <System.Object>
+; V294 tmp276 [V294,T81] ( 4, 2.42) ref -> rbx class-hnd "Inline stloc first use temp" <System.Object>
; V295 tmp277 [V295,T158] ( 3, 0 ) ref -> rax class-hnd "Inline stloc first use temp" <System.Threading.Tasks.Task`1[System.IO.Pipelines.FlushResult]>
;* V296 tmp278 [V296 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" <System.Threading.Tasks.Sources.IValueTaskSource`1[System.IO.Pipelines.FlushResult]>
;* V297 tmp279 [V297 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
@@ -311,7 +311,7 @@
;* V299 tmp281 [V299 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V300 tmp282 [V300 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Runtime.CompilerServices.IAsyncStateMachineBox>
;* V301 tmp283 [V301 ] ( 0, 0 ) struct ( 8) zero-ref "Inline return value spill temp" <System.IO.Pipelines.FlushResult>
-; V302 tmp284 [V302,T83] ( 4, 2.42) ref -> rbx class-hnd "Inline stloc first use temp" <System.Object>
+; V302 tmp284 [V302,T82] ( 4, 2.42) ref -> rbx class-hnd "Inline stloc first use temp" <System.Object>
; V303 tmp285 [V303,T140] ( 5, 0 ) ref -> r14 class-hnd "Inline stloc first use temp" <System.Threading.Tasks.Task`1[System.IO.Pipelines.FlushResult]>
;* V304 tmp286 [V304 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" <System.Threading.Tasks.Sources.IValueTaskSource`1[System.IO.Pipelines.FlushResult]>
; V305 tmp287 [V305,T144] ( 4, 0.00) ref -> rcx class-hnd single-def "spilling ret_expr" <System.IO.Pipelines.IDuplexPipe>
@@ -326,13 +326,13 @@
;* V314 tmp296 [V314 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V315 tmp297 [V315 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Runtime.CompilerServices.IAsyncStateMachineBox>
; V316 tmp298 [V316,T160] ( 3, 0.00) ref -> rcx class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
-; V317 tmp299 [V317,T61] ( 3, 3.61) ref -> [rbp-0x48] do-not-enreg[DA] defined-via-address "field V03._object (fldOffset=0x0)" P-DEP
-; V318 tmp300 [V318,T66] ( 3, 3.61) int -> [rbp-0x40] do-not-enreg[DA] defined-via-address "field V03._index (fldOffset=0x8)" P-DEP
+; V317 tmp299 [V317,T60] ( 3, 3.61) ref -> [rbp-0x48] do-not-enreg[DA] defined-via-address "field V03._object (fldOffset=0x0)" P-DEP
+; V318 tmp300 [V318,T65] ( 3, 3.61) int -> [rbp-0x40] do-not-enreg[DA] defined-via-address "field V03._index (fldOffset=0x8)" P-DEP
; V319 tmp301 [V319,T20] ( 5, 7.23) int -> [rbp-0x3C] do-not-enreg[DA] defined-via-address "field V03._length (fldOffset=0xc)" P-DEP
;* V320 tmp302 [V320 ] ( 0, 0 ) ref -> zero-ref "field V04.SocketError (fldOffset=0x0)" P-INDEP
; V321 tmp303 [V321,T12] ( 9, 9.66) int -> rbx "field V04.BytesTransferred (fldOffset=0x8)" P-INDEP
; V322 tmp304 [V322,T48] ( 6, 3.63) ref -> [rbp-0x58] do-not-enreg[DA] defined-via-address "field V06._obj (fldOffset=0x0)" P-DEP
-; V323 tmp305 [V323,T87] ( 4, 2.42) short -> [rbp-0x50] do-not-enreg[DA] defined-via-address "field V06._token (fldOffset=0x8)" P-DEP
+; V323 tmp305 [V323,T86] ( 4, 2.42) short -> [rbp-0x50] do-not-enreg[DA] defined-via-address "field V06._token (fldOffset=0x8)" P-DEP
; V324 tmp306 [V324,T99] ( 3, 2.42) ubyte -> [rbp-0x4E] do-not-enreg[DA] defined-via-address "field V06._continueOnCapturedContext (fldOffset=0xa)" P-DEP
; V325 tmp307 [V325,T100] ( 3, 2.42) ubyte -> [rbp-0x4D] do-not-enreg[DA] defined-via-address "field V06._result (fldOffset=0xb)" P-DEP
;* V326 tmp308 [V326 ] ( 0, 0 ) ubyte -> zero-ref "field V07._resultFlags (fldOffset=0x0)" P-INDEP
@@ -358,7 +358,7 @@
;* V346 tmp328 [V346 ] ( 0, 0 ) int -> zero-ref "field V59.BytesTransferred (fldOffset=0x8)" P-INDEP
;* V347 tmp329 [V347 ] ( 0, 0 ) ref -> zero-ref "field V60.SocketError (fldOffset=0x0)" P-INDEP
;* V348 tmp330 [V348 ] ( 0, 0 ) int -> zero-ref "field V60.BytesTransferred (fldOffset=0x8)" P-INDEP
-; V349 tmp331 [V349,T56] ( 11, 3.61) ref -> [rbp-0xA0] do-not-enreg[DA] defined-via-address "field V88.SocketError (fldOffset=0x0)" P-DEP
+; V349 tmp331 [V349,T55] ( 11, 3.61) ref -> [rbp-0xA0] do-not-enreg[DA] defined-via-address "field V88.SocketError (fldOffset=0x0)" P-DEP
; V350 tmp332 [V350,T121] ( 3, 1.21) int -> [rbp-0x98] do-not-enreg[DA] defined-via-address "field V88.BytesTransferred (fldOffset=0x8)" P-DEP
; V351 tmp333 [V351,T125] ( 3, 1.20) ref -> r14 "field V93.SocketError (fldOffset=0x0)" P-INDEP
;* V352 tmp334 [V352 ] ( 0, 0 ) int -> zero-ref "field V93.BytesTransferred (fldOffset=0x8)" P-INDEP
@@ -372,9 +372,9 @@
;* V360 tmp342 [V360 ] ( 0, 0 ) ref -> zero-ref "field V138._object (fldOffset=0x0)" P-INDEP
;* V361 tmp343 [V361 ] ( 0, 0 ) int -> zero-ref "field V138._index (fldOffset=0x8)" P-INDEP
;* V362 tmp344 [V362 ] ( 0, 0 ) int -> zero-ref "field V138._length (fldOffset=0xc)" P-INDEP
-; V363 tmp345 [V363,T69] ( 3, 3.60) ref -> [rbp-0xB8] do-not-enreg[DA] defined-via-address "field V152._object (fldOffset=0x0)" P-DEP
-; V364 tmp346 [V364,T71] ( 3, 3.60) int -> [rbp-0xB0] do-not-enreg[DA] defined-via-address "field V152._index (fldOffset=0x8)" P-DEP
-; V365 tmp347 [V365,T72] ( 3, 3.60) int -> [rbp-0xAC] do-not-enreg[DA] defined-via-address "field V152._length (fldOffset=0xc)" P-DEP
+; V363 tmp345 [V363,T68] ( 3, 3.60) ref -> [rbp-0xB8] do-not-enreg[DA] defined-via-address "field V152._object (fldOffset=0x0)" P-DEP
+; V364 tmp346 [V364,T70] ( 3, 3.60) int -> [rbp-0xB0] do-not-enreg[DA] defined-via-address "field V152._index (fldOffset=0x8)" P-DEP
+; V365 tmp347 [V365,T71] ( 3, 3.60) int -> [rbp-0xAC] do-not-enreg[DA] defined-via-address "field V152._length (fldOffset=0xc)" P-DEP
;* V366 tmp348 [V366 ] ( 0, 0 ) ref -> zero-ref "field V169.SocketError (fldOffset=0x0)" P-INDEP
;* V367 tmp349 [V367 ] ( 0, 0 ) int -> zero-ref "field V169.BytesTransferred (fldOffset=0x8)" P-INDEP
;* V368 tmp350 [V368 ] ( 0, 0 ) ref -> zero-ref "field V171.SocketError (fldOffset=0x0)" P-INDEP
@@ -387,7 +387,7 @@
;* V375 tmp357 [V375 ] ( 0, 0 ) int -> zero-ref "field V179.BytesTransferred (fldOffset=0x8)" P-INDEP
;* V376 tmp358 [V376 ] ( 0, 0 ) ref -> zero-ref "field V180.SocketError (fldOffset=0x0)" P-INDEP
;* V377 tmp359 [V377 ] ( 0, 0 ) int -> zero-ref "field V180.BytesTransferred (fldOffset=0x8)" P-INDEP
-; V378 tmp360 [V378,T79] ( 8, 2.42) ref -> r14 "field V198.SocketError (fldOffset=0x0)" P-INDEP
+; V378 tmp360 [V378,T78] ( 8, 2.42) ref -> r14 "field V198.SocketError (fldOffset=0x0)" P-INDEP
;* V379 tmp361 [V379 ] ( 0, 0 ) int -> zero-ref "field V198.BytesTransferred (fldOffset=0x8)" P-INDEP
;* V380 tmp362 [V380 ] ( 0, 0 ) ref -> zero-ref "field V215._object (fldOffset=0x0)" P-INDEP
;* V381 tmp363 [V381 ] ( 0, 0 ) int -> zero-ref "field V215._index (fldOffset=0x8)" P-INDEP
@@ -410,7 +410,7 @@
;* V398 tmp380 [V398 ] ( 0, 0 ) short -> zero-ref "field V241._token (fldOffset=0x8)" P-INDEP
;* V399 tmp381 [V399 ] ( 0, 0 ) ubyte -> zero-ref "field V241._continueOnCapturedContext (fldOffset=0xa)" P-INDEP
;* V400 tmp382 [V400 ] ( 0, 0 ) ubyte -> zero-ref "field V241._result (fldOffset=0xb)" P-INDEP
-; V401 tmp383 [V401,T80] ( 5, 2.42) ubyte -> r13 "field V243._resultFlags (fldOffset=0x0)" P-INDEP
+; V401 tmp383 [V401,T79] ( 5, 2.42) ubyte -> r13 "field V243._resultFlags (fldOffset=0x0)" P-INDEP
;* V402 tmp384 [V402 ] ( 0, 0 ) ref -> zero-ref "field V244._obj (fldOffset=0x0)" P-INDEP
;* V403 tmp385 [V403 ] ( 0, 0 ) short -> zero-ref "field V244._token (fldOffset=0x8)" P-INDEP
;* V404 tmp386 [V404 ] ( 0, 0 ) ubyte -> zero-ref "field V244._continueOnCapturedContext (fldOffset=0xa)" P-INDEP
@@ -429,7 +429,7 @@
;* V417 tmp399 [V417 ] ( 0, 0 ) ref -> zero-ref "field V276.<CompletionState>k__BackingField (fldOffset=0x8)" P-INDEP
;* V418 tmp400 [V418 ] ( 0, 0 ) ref -> zero-ref "field V276.<ExecutionContext>k__BackingField (fldOffset=0x10)" P-INDEP
;* V419 tmp401 [V419 ] ( 0, 0 ) ref -> zero-ref "field V276.<SynchronizationContext>k__BackingField (fldOffset=0x18)" P-INDEP
-; V420 tmp402 [V420,T50] ( 5, 3.63) ubyte -> r14 "field V301._resultFlags (fldOffset=0x0)" P-INDEP
+; V420 tmp402 [V420,T87] ( 4, 2.42) ubyte -> r14 "field V301._resultFlags (fldOffset=0x0)" P-INDEP
;* V421 tmp403 [V421 ] ( 0, 0 ) ref -> zero-ref single-def "field V310.m_task (fldOffset=0x0)" P-INDEP
;* V422 tmp404 [V422 ] ( 0, 0 ) ref -> zero-ref "V49.[000..008)"
;* V423 tmp405 [V423 ] ( 0, 0 ) short -> zero-ref "V49.[008..010)"
@@ -461,16 +461,16 @@
;* V449 tmp431 [V449 ] ( 0, 0 ) ubyte -> zero-ref "V173.[010..011)"
;* V450 tmp432 [V450 ] ( 0, 0 ) ref -> zero-ref "V173.[016..024)"
;* V451 tmp433 [V451 ] ( 0, 0 ) int -> zero-ref "V173.[024..028)"
-; V452 tmp434 [V452,T84] ( 4, 2.42) ref -> rbx "V42.[000..008)"
+; V452 tmp434 [V452,T83] ( 4, 2.42) ref -> rbx "V42.[000..008)"
;* V453 tmp435 [V453 ] ( 0, 0 ) short -> zero-ref "V42.[008..010)"
;* V454 tmp436 [V454 ] ( 0, 0 ) ubyte -> zero-ref "V42.[010..011)"
-; V455 tmp437 [V455,T85] ( 4, 2.42) ref -> r14 "V42.[016..024)"
+; V455 tmp437 [V455,T84] ( 4, 2.42) ref -> r14 "V42.[016..024)"
; V456 tmp438 [V456,T88] ( 4, 2.42) int -> r15 "V42.[024..028)"
-; V457 tmp439 [V457,T58] ( 4, 3.61) ref -> r14 "V164.[000..008)"
+; V457 tmp439 [V457,T57] ( 4, 3.61) ref -> r14 "V164.[000..008)"
;* V458 tmp440 [V458 ] ( 0, 0 ) short -> zero-ref "V164.[008..010)"
;* V459 tmp441 [V459 ] ( 0, 0 ) ubyte -> zero-ref "V164.[010..011)"
-; V460 tmp442 [V460,T59] ( 4, 3.61) ref -> r15 "V164.[016..024)"
-; V461 tmp443 [V461,T60] ( 4, 3.61) int -> rax "V164.[024..028)"
+; V460 tmp442 [V460,T58] ( 4, 3.61) ref -> r15 "V164.[016..024)"
+; V461 tmp443 [V461,T59] ( 4, 3.61) int -> rax "V164.[024..028)"
;* V462 tmp444 [V462 ] ( 0, 0 ) ref -> zero-ref "V225.[000..008)"
;* V463 tmp445 [V463 ] ( 0, 0 ) short -> zero-ref "V225.[008..010)"
;* V464 tmp446 [V464 ] ( 0, 0 ) ubyte -> zero-ref "V225.[010..011)"
@@ -493,17 +493,17 @@
; V481 tmp463 [V481,T108] ( 2, 2.40) ref -> rdx "argument with side effect"
; V482 tmp464 [V482,T182] ( 2, 0 ) ref -> rdx "argument with side effect"
; V483 tmp465 [V483,T183] ( 2, 0.00) ref -> rdx single-def "argument with side effect"
-; V484 cse0 [V484,T70] ( 3, 3.60) byref -> rcx "CSE #09: conservative"
+; V484 cse0 [V484,T69] ( 3, 3.60) byref -> rcx "CSE #09: conservative"
; V485 cse1 [V485,T32] ( 4, 4.83) int -> rdx "CSE #32: moderate"
-; V486 cse2 [V486,T53] ( 3, 3.62) int -> r15 "CSE #29: conservative"
+; V486 cse2 [V486,T52] ( 3, 3.62) int -> r15 "CSE #29: conservative"
; V487 cse3 [V487,T31] ( 4, 4.83) byref -> r15 "CSE #31: moderate"
-; V488 rat0 [V488,T74] ( 5, 3.20) ref -> r14 "replacement local"
+; V488 rat0 [V488,T73] ( 5, 3.20) ref -> r14 "replacement local"
; V489 rat1 [V489,T115] ( 3, 1.60) ref -> rdx "Spilling to split statement for tree"
-; V490 rat2 [V490,T77] ( 5, 2.80) ref -> r14 "replacement local"
+; V490 rat2 [V490,T76] ( 5, 2.80) ref -> r14 "replacement local"
; V491 rat3 [V491,T128] ( 3, 0.80) long -> rcx "CSE for expectedClsNode"
; V492 rat4 [V492,T44] ( 5, 4.78) ref -> r14 "replacement local"
; V493 rat5 [V493,T43] ( 5, 4.79) ref -> r14 "replacement local"
-; V494 rat6 [V494,T75] ( 5, 3.20) ref -> r14 "replacement local"
+; V494 rat6 [V494,T74] ( 5, 3.20) ref -> r14 "replacement local"
; V495 rat7 [V495,T116] ( 3, 1.60) byref -> rax "TLS field access"
; V496 rat8 [V496,T103] ( 3, 2.40) long -> rcx "TLS access"
; V497 rat9 [V497,T102] ( 3, 2.40) byref -> rax "ThreadStaticBlockBase access"
@@ -1630,12 +1630,9 @@ G_M59369_IG104: ; bbWeight=1.21, gcrefRegs=0000 {}, byrefRegs=0040 {rsi},
;; size=10 bbWeight=1.21 PerfScore 3.63
G_M59369_IG105: ; bbWeight=1.21, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref
movzx rax, r14b
- and eax, 2
- movzx rcx, r14b
- and ecx, 1
- or eax, ecx
+ test al, 3
jne G_M59369_IG204
- ;; size=22 bbWeight=1.21 PerfScore 2.72
+ ;; size=12 bbWeight=1.21 PerfScore 1.81
G_M59369_IG106: ; bbWeight=1.21, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref
mov rdi, gword ptr [rbp-0x110]
; gcrRegs +[rdi]
@@ -3336,7 +3333,7 @@ RWD00 dd G_M59369_IG05 - G_M59369_IG02
dd G_M59369_IG198 - G_M59369_IG02
-; Total bytes of code 6531, prolog size 85, PerfScore 736.52, instruction count 1401, allocated bytes for code 6531 (MethodHash=af721816) for method Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketConnection+<DoReceive>d__27:MoveNext():this (Tier1)
+; Total bytes of code 6521, prolog size 85, PerfScore 735.61, instruction count 1398, allocated bytes for code 6521 (MethodHash=af721816) for method Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketConnection+<DoReceive>d__27:MoveNext():this (Tier1)
; ============================================================
Unwind Info:benchmarks.run.windows.x64.checked.mch
-16 (-4.43%) : 31192.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:ConvertToKeyword(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (FullOpts)
@@ -45,18 +45,17 @@
; V34 tmp30 [V34,T07] ( 3, 3 ) byref -> rcx single-def "dup spill"
;* V35 tmp31 [V35 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V36 tmp32 [V36 ] ( 0, 0 ) ref -> zero-ref "field V03._node (fldOffset=0x0)" P-INDEP
-; V37 tmp33 [V37,T19] ( 2, 1 ) ref -> r14 single-def "field V12._node (fldOffset=0x0)" P-INDEP
-; V38 tmp34 [V38,T20] ( 2, 1 ) ref -> r8 single-def "field V14._node (fldOffset=0x0)" P-INDEP
+; V37 tmp33 [V37,T18] ( 2, 1 ) ref -> r14 single-def "field V12._node (fldOffset=0x0)" P-INDEP
+; V38 tmp34 [V38,T19] ( 2, 1 ) ref -> r8 single-def "field V14._node (fldOffset=0x0)" P-INDEP
; V39 tmp35 [V39,T11] ( 4, 2 ) ref -> rdi single-def "field V18._node (fldOffset=0x0)" P-INDEP
; V40 tmp36 [V40,T12] ( 4, 2 ) ref -> rsi single-def "field V20._node (fldOffset=0x0)" P-INDEP
; V41 tmp37 [V41,T09] ( 3, 2.25) ref -> rax single-def "argument with side effect"
; V42 cse0 [V42,T04] ( 4, 3 ) long -> rbp "CSE #02: aggressive"
; V43 cse1 [V43,T03] ( 6, 3 ) long -> rsi multi-def "CSE #03: aggressive"
; V44 cse2 [V44,T16] ( 3, 1.50) int -> rdx "CSE #05: conservative"
-; V45 cse3 [V45,T17] ( 3, 1.50) int -> rax "CSE #07: conservative"
-; V46 cse4 [V46,T05] ( 4, 3 ) long -> rdi "CSE #01: aggressive"
-; V47 rat0 [V47,T02] ( 5, 3.75) ref -> rsi "replacement local"
-; V48 rat1 [V48,T18] ( 3, 1.25) long -> rcx "CSE for expectedClsNode"
+; V45 cse3 [V45,T05] ( 4, 3 ) long -> rdi "CSE #01: aggressive"
+; V46 rat0 [V46,T02] ( 5, 3.75) ref -> rsi "replacement local"
+; V47 rat1 [V47,T17] ( 3, 1.25) long -> rcx "CSE for expectedClsNode"
;
; Lcl frame size = 32
@@ -177,14 +176,9 @@ G_M12665_IG06: ; bbWeight=0.50, gcrefRegs=4048 {rbx rsi r14}, byrefRegs=0
G_M12665_IG07: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
lea rcx, bword ptr [r14+0x0E]
; byrRegs +[rcx]
- movzx rax, word ptr [rcx]
- mov edx, eax
- and edx, 0xF000
- and eax, 0xFFE
- or eax, edx
- mov word ptr [rcx], ax
+ and word ptr [rcx], 0xFFFE
jmp SHORT G_M12665_IG09
- ;; size=27 bbWeight=0.50 PerfScore 3.25
+ ;; size=11 bbWeight=0.50 PerfScore 2.75
G_M12665_IG08: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
; gcrRegs -[r14]
; byrRegs -[rcx]
@@ -276,7 +270,7 @@ G_M12665_IG13: ; bbWeight=0.50, epilog, nogc, extend
ret
;; size=11 bbWeight=0.50 PerfScore 1.88
-; Total bytes of code 361, prolog size 10, PerfScore 59.25, instruction count 115, allocated bytes for code 361 (MethodHash=b5e6ce86) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:ConvertToKeyword(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (FullOpts)
+; Total bytes of code 345, prolog size 10, PerfScore 58.75, instruction count 110, allocated bytes for code 345 (MethodHash=b5e6ce86) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:ConvertToKeyword(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (FullOpts)
; ============================================================
Unwind Info:-47 (-3.69%) : 31131.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:.cctor() (FullOpts)
@@ -15,7 +15,7 @@
;* V04 tmp3 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewArr temp" <<unknown class>>
;* V05 tmp4 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewArr temp" <<unknown class>>
;* V06 tmp5 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewArr temp" <<unknown class>>
-; V07 tmp6 [V07,T48] ( 6, 12 ) ref -> rax class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+MissingTokenWithTrivia>
+; V07 tmp6 [V07,T47] ( 6, 12 ) ref -> rax class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+MissingTokenWithTrivia>
; V08 tmp7 [V08,T05] ( 6, 96 ) ref -> r12 class-hnd exact "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken>
; V09 tmp8 [V09,T26] ( 2, 32 ) byref -> [rsp+0x68] spill-single-def "impAppendStmt"
; V10 tmp9 [V10,T00] ( 13,208 ) ref -> [rsp+0x60] class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+SyntaxTokenWithTrivia>
@@ -27,14 +27,14 @@
; V16 tmp15 [V16,T06] ( 5, 80 ) ref -> rax class-hnd exact "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+MissingTokenWithTrivia>
; V17 tmp16 [V17,T30] ( 2, 32 ) byref -> rcx "impAppendStmt"
;* V18 tmp17 [V18 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V19 tmp18 [V19,T56] ( 3, 6 ) byref -> rcx single-def "dup spill"
+; V19 tmp18 [V19,T55] ( 3, 6 ) byref -> rcx single-def "dup spill"
;* V20 tmp19 [V20 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-; V21 tmp20 [V21,T57] ( 3, 6 ) byref -> rcx single-def "dup spill"
+; V21 tmp20 [V21,T56] ( 3, 6 ) byref -> rcx single-def "dup spill"
;* V22 tmp21 [V22 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V23 tmp22 [V23 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V24 tmp23 [V24,T09] ( 3, 48 ) byref -> rcx "dup spill"
;* V25 tmp24 [V25 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-;* V26 tmp25 [V26,T47] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxTrivia>
+;* V26 tmp25 [V26,T46] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxTrivia>
; V27 tmp26 [V27,T04] ( 7,112 ) ref -> [rsp+0x38] class-hnd exact spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxTrivia>
;* V28 tmp27 [V28 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V29 tmp28 [V29,T10] ( 3, 48 ) byref -> rcx "dup spill"
@@ -73,29 +73,27 @@
; V62 tmp61 [V62,T21] ( 3, 48 ) ref -> rcx "arr expr"
; V63 tmp62 [V63,T22] ( 3, 48 ) ref -> rcx "arr expr"
; V64 tmp63 [V64,T23] ( 3, 48 ) ref -> rcx "arr expr"
-; V65 cse0 [V65,T24] ( 5, 40 ) int -> [rsp+0x74] spill-single-def "CSE #10: moderate"
-; V66 cse1 [V66,T35] ( 2, 16 ) ref -> r8 "CSE #09: moderate"
-; V67 cse2 [V67,T37] ( 3, 24 ) int -> rdx "CSE #06: moderate"
-; V68 cse3 [V68,T38] ( 3, 24 ) int -> rdx "CSE #11: moderate"
-; V69 cse4 [V69,T39] ( 3, 24 ) int -> rdx "CSE #17: moderate"
-; V70 cse5 [V70,T40] ( 3, 24 ) int -> rdx "CSE #21: moderate"
-; V71 cse6 [V71,T41] ( 3, 24 ) int -> r10 "CSE #26: moderate"
-; V72 cse7 [V72,T42] ( 3, 24 ) int -> r8 "CSE #28: moderate"
+; V65 cse0 [V65,T24] ( 5, 40 ) int -> [rsp+0x74] spill-single-def "CSE #09: moderate"
+; V66 cse1 [V66,T35] ( 2, 16 ) ref -> r8 "CSE #08: moderate"
+; V67 cse2 [V67,T37] ( 3, 24 ) int -> rdx "CSE #05: moderate"
+; V68 cse3 [V68,T38] ( 3, 24 ) int -> rdx "CSE #10: moderate"
+; V69 cse4 [V69,T39] ( 3, 24 ) int -> rdx "CSE #16: moderate"
+; V70 cse5 [V70,T40] ( 3, 24 ) int -> rdx "CSE #20: moderate"
+; V71 cse6 [V71,T41] ( 3, 24 ) int -> r10 "CSE #25: moderate"
+; V72 cse7 [V72,T42] ( 3, 24 ) int -> r10 "CSE #12: moderate"
; V73 cse8 [V73,T43] ( 3, 24 ) int -> r10 "CSE #13: moderate"
-; V74 cse9 [V74,T44] ( 3, 24 ) int -> r10 "CSE #14: moderate"
-; V75 cse10 [V75,T45] ( 3, 24 ) int -> r10 "CSE #19: moderate"
-; V76 cse11 [V76,T46] ( 3, 24 ) int -> r8 "CSE #23: moderate"
-; V77 cse12 [V77,T58] ( 3, 3 ) int -> rdx "CSE #02: moderate"
-; V78 cse13 [V78,T59] ( 3, 3 ) int -> rdx "CSE #04: moderate"
-; V79 cse14 [V79,T25] ( 4, 32 ) long -> r12 "CSE #15: moderate"
-; V80 cse15 [V80,T49] ( 3, 10 ) long -> rsi "CSE #05: moderate"
-; V81 cse16 [V81,T50] ( 3, 10 ) long -> rdi "CSE #07: moderate"
-; V82 cse17 [V82,T51] ( 3, 10 ) long -> rbp "CSE #16: moderate"
-; V83 cse18 [V83,T52] ( 3, 10 ) long -> r14 "CSE #20: moderate"
-; V84 cse19 [V84,T53] ( 3, 10 ) long -> r15 "CSE #24: moderate"
-; V85 cse20 [V85,T54] ( 3, 10 ) long -> rbx "CSE #25: moderate"
-; V86 cse21 [V86,T36] ( 3, 24 ) byref -> rdx "CSE #27: moderate"
-; V87 cse22 [V87,T55] ( 6, 6 ) long -> rbx "CSE #01: moderate"
+; V74 cse9 [V74,T44] ( 3, 24 ) int -> r10 "CSE #18: moderate"
+; V75 cse10 [V75,T45] ( 3, 24 ) int -> r8 "CSE #22: moderate"
+; V76 cse11 [V76,T57] ( 3, 3 ) int -> rdx "CSE #02: moderate"
+; V77 cse12 [V77,T25] ( 4, 32 ) long -> r12 "CSE #14: moderate"
+; V78 cse13 [V78,T48] ( 3, 10 ) long -> rsi "CSE #04: moderate"
+; V79 cse14 [V79,T49] ( 3, 10 ) long -> rdi "CSE #06: moderate"
+; V80 cse15 [V80,T50] ( 3, 10 ) long -> rbp "CSE #15: moderate"
+; V81 cse16 [V81,T51] ( 3, 10 ) long -> r14 "CSE #19: moderate"
+; V82 cse17 [V82,T52] ( 3, 10 ) long -> r15 "CSE #23: moderate"
+; V83 cse18 [V83,T53] ( 3, 10 ) long -> rbx "CSE #24: moderate"
+; V84 cse19 [V84,T36] ( 3, 24 ) byref -> rdx "CSE #26: moderate"
+; V85 cse20 [V85,T54] ( 6, 6 ) long -> rbx "CSE #01: moderate"
;
; Lcl frame size = 120
@@ -185,23 +183,16 @@ G_M32365_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
or edx, 1
mov word ptr [rcx], dx
lea rcx, bword ptr [rax+0x0E]
- movzx rdx, word ptr [rcx]
- mov r8d, edx
- and r8d, 0xF000
- and edx, 0xFFE
- or edx, r8d
- mov word ptr [rcx], dx
+ and word ptr [rcx], 0xFFFE
mov rcx, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
; byrRegs -[rcx]
mov rdx, rax
; gcrRegs +[rdx]
call CORINFO_HELP_ASSIGN_REF
; gcrRegs -[rax rdx]
- ;; size=288 bbWeight=1 PerfScore 31.00
-G_M32365_IG03: ; bbWeight=1, extend
mov r13d, 0x2001
- ;; size=6 bbWeight=1 PerfScore 0.25
-G_M32365_IG04: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ;; size=274 bbWeight=1 PerfScore 30.25
+G_M32365_IG03: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rcx, 0xD1FFAB1E ; Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken
call CORINFO_HELP_NEWSFAST
; gcrRegs +[rax]
@@ -211,7 +202,7 @@ G_M32365_IG04: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rcx, gword ptr [rsi]
; gcrRegs +[rcx]
cmp r13d, dword ptr [rcx+0x08]
- jae G_M32365_IG09
+ jae G_M32365_IG08
mov eax, r13d
; gcrRegs -[rax]
lea rax, bword ptr [rcx+8*rax+0x10]
@@ -256,7 +247,7 @@ G_M32365_IG04: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rcx, gword ptr [rdi]
; gcrRegs +[rcx]
cmp r13d, dword ptr [rcx+0x08]
- jae G_M32365_IG09
+ jae G_M32365_IG08
mov edx, r13d
lea rdx, bword ptr [rcx+8*rdx+0x10]
; byrRegs +[rdx]
@@ -286,7 +277,7 @@ G_M32365_IG04: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
or edx, r8d
or edx, 1
;; size=240 bbWeight=8 PerfScore 414.00
-G_M32365_IG05: ; bbWeight=8, extend
+G_M32365_IG04: ; bbWeight=8, extend
mov word ptr [rcx], dx
mov r8, gword ptr [rsp+0x38]
; gcrRegs +[r8]
@@ -357,7 +348,7 @@ G_M32365_IG05: ; bbWeight=8, extend
mov rcx, gword ptr [rbp]
; gcrRegs +[rcx]
cmp r13d, dword ptr [rcx+0x08]
- jae G_M32365_IG09
+ jae G_M32365_IG08
mov edx, r13d
lea rdx, bword ptr [rcx+8*rdx+0x10]
; byrRegs +[rdx]
@@ -372,7 +363,7 @@ G_M32365_IG05: ; bbWeight=8, extend
mov word ptr [rax+0x0C], r13w
mov ecx, dword ptr [rsp+0x74]
;; size=234 bbWeight=8 PerfScore 398.00
-G_M32365_IG06: ; bbWeight=8, extend
+G_M32365_IG05: ; bbWeight=8, extend
call [<unknown method>]
; gcrRegs -[r8]
; byrRegs -[rdx]
@@ -432,7 +423,7 @@ G_M32365_IG06: ; bbWeight=8, extend
mov rcx, gword ptr [r14]
; gcrRegs +[rcx]
cmp r13d, dword ptr [rcx+0x08]
- jae G_M32365_IG09
+ jae G_M32365_IG08
mov eax, r13d
; gcrRegs -[rax]
lea rax, bword ptr [rcx+8*rax+0x10]
@@ -459,7 +450,7 @@ G_M32365_IG06: ; bbWeight=8, extend
mov eax, edx
; gcrRegs -[rax]
;; size=225 bbWeight=8 PerfScore 420.00
-G_M32365_IG07: ; bbWeight=8, extend
+G_M32365_IG06: ; bbWeight=8, isz, extend
and eax, 0xF000
and edx, 0xFFF
or edx, eax
@@ -506,7 +497,7 @@ G_M32365_IG07: ; bbWeight=8, extend
mov rcx, gword ptr [rbx]
; gcrRegs +[rcx]
cmp r13d, dword ptr [rcx+0x08]
- jae G_M32365_IG09
+ jae SHORT G_M32365_IG08
mov edx, r13d
lea rcx, bword ptr [rcx+8*rdx+0x10]
; gcrRegs -[rcx]
@@ -525,25 +516,19 @@ G_M32365_IG07: ; bbWeight=8, extend
or r10d, r9d
or r10d, 1
mov word ptr [r8], r10w
- movzx r8, word ptr [rdx]
- ; byrRegs -[r8]
- mov r10d, r8d
- and r10d, 0xF000
- and r8d, 0xFFE
- or r8d, r10d
- mov word ptr [rdx], r8w
+ and word ptr [rdx], 0xFFFE
mov rdx, rax
; gcrRegs +[rdx]
; byrRegs -[rdx]
call CORINFO_HELP_ASSIGN_REF
; gcrRegs -[rax rdx]
- ; byrRegs -[rcx]
+ ; byrRegs -[rcx r8]
inc r13d
movzx r13, r13w
cmp r13d, 0x2130
- jle G_M32365_IG04
- ;; size=240 bbWeight=8 PerfScore 328.00
-G_M32365_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+ jle G_M32365_IG03
+ ;; size=213 bbWeight=8 PerfScore 320.00
+G_M32365_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
add rsp, 120
pop rbx
pop rbp
@@ -555,13 +540,13 @@ G_M32365_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
pop r15
ret
;; size=17 bbWeight=1 PerfScore 5.25
-G_M32365_IG09: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M32365_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
call CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1272, prolog size 16, PerfScore 1604.75, instruction count 296, allocated bytes for code 1272 (MethodHash=55c88192) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:.cctor() (FullOpts)
+; Total bytes of code 1225, prolog size 16, PerfScore 1595.75, instruction count 286, allocated bytes for code 1225 (MethodHash=55c88192) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:.cctor() (FullOpts)
; ============================================================
Unwind Info:-8 (-2.71%) : 540.dasm - System.RuntimeType:GetBaseType():System.RuntimeType:this (FullOpts)
@@ -10,10 +10,10 @@
;
; V00 this [V00,T06] ( 7, 5 ) ref -> rbx this class-hnd single-def <System.RuntimeType>
; V01 loc0 [V01,T09] ( 3, 1.50) ref -> rsi class-hnd single-def <System.Type[]>
-; V02 loc1 [V02,T08] ( 5, 4 ) ref -> rdi class-hnd <System.RuntimeType>
+; V02 loc1 [V02,T07] ( 5, 4 ) ref -> rdi class-hnd <System.RuntimeType>
;* V03 loc2 [V03,T12] ( 0, 0 ) int -> zero-ref
; V04 loc3 [V04,T02] ( 5, 14 ) ref -> r14 class-hnd exact <System.RuntimeType>
-; V05 loc4 [V05,T07] ( 3, 6 ) int -> rax
+; V05 loc4 [V05,T08] ( 2, 4 ) int -> rax
; V06 OutArgs [V06 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <UNNAMED>
;* V07 cse0 [V07,T11] ( 0, 0 ) byref -> zero-ref "CSE #03: aggressive"
; V08 cse1 [V08,T10] ( 3, 1.50) int -> rbp "CSE #01: aggressive"
@@ -126,12 +126,9 @@ G_M56028_IG10: ; bbWeight=2, gcrefRegs=4088 {rbx rdi r14}, byrefRegs=0040
call [System.RuntimeType:get_GenericParameterAttributes():int:this]
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M56028_IG12
- ;; size=33 bbWeight=2 PerfScore 15.50
+ ;; size=25 bbWeight=2 PerfScore 14.00
G_M56028_IG11: ; bbWeight=2, gcrefRegs=4008 {rbx r14}, byrefRegs=0040 {rsi}, byref
; gcrRegs -[rdi]
mov rdi, r14
@@ -200,7 +197,7 @@ G_M56028_IG19: ; bbWeight=0, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byr
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 295, prolog size 10, PerfScore 98.38, instruction count 92, allocated bytes for code 295 (MethodHash=370d2523) for method System.RuntimeType:GetBaseType():System.RuntimeType:this (FullOpts)
+; Total bytes of code 287, prolog size 10, PerfScore 96.88, instruction count 89, allocated bytes for code 287 (MethodHash=370d2523) for method System.RuntimeType:GetBaseType():System.RuntimeType:this (FullOpts)
; ============================================================
Unwind Info:-17 (-2.52%) : 31130.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:Create(ushort,Microsoft.CodeAnalysis.GreenNode,Microsoft.CodeAnalysis.GreenNode):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (FullOpts)
@@ -13,9 +13,9 @@
; V02 arg2 [V02,T02] ( 12, 7 ) ref -> rbx class-hnd single-def <Microsoft.CodeAnalysis.GreenNode>
; V03 OutArgs [V03 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <UNNAMED>
; V04 tmp1 [V04,T00] ( 10, 10 ) ref -> rbp class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+SyntaxTokenWithTrivia>
-; V05 tmp2 [V05,T18] ( 3, 0 ) ref -> rbx class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
-; V06 tmp3 [V06,T20] ( 2, 0 ) ref -> rsi class-hnd exact single-def "impImportAndPushBox" <System.String>
-; V07 tmp4 [V07,T19] ( 3, 0 ) ref -> rdi class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V05 tmp2 [V05,T17] ( 3, 0 ) ref -> rbx class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
+; V06 tmp3 [V06,T19] ( 2, 0 ) ref -> rsi class-hnd exact single-def "impImportAndPushBox" <System.String>
+; V07 tmp4 [V07,T18] ( 3, 0 ) ref -> rdi class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
; V08 tmp5 [V08,T01] ( 10, 10 ) ref -> rbp class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+MissingTokenWithTrivia>
;* V09 tmp6 [V09 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V10 tmp7 [V10,T07] ( 3, 3 ) byref -> rcx single-def "dup spill"
@@ -30,12 +30,11 @@
; V19 tmp16 [V19,T11] ( 3, 3 ) ref -> rax single-def "arr expr"
; V20 tmp17 [V20,T12] ( 3, 3 ) ref -> rax single-def "arr expr"
; V21 tmp18 [V21,T13] ( 3, 3 ) ref -> rax single-def "arr expr"
-; V22 tmp19 [V22,T21] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
-; V23 cse0 [V23,T14] ( 3, 1.50) ref -> rax "CSE #06: moderate"
+; V22 tmp19 [V22,T20] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V23 cse0 [V23,T14] ( 3, 1.50) ref -> rax "CSE #05: moderate"
; V24 cse1 [V24,T15] ( 3, 1.50) int -> rdx "CSE #02: moderate"
-; V25 cse2 [V25,T16] ( 3, 1.50) int -> rcx "CSE #04: moderate"
-; V26 cse3 [V26,T17] ( 3, 1.50) int -> rdx "CSE #07: moderate"
-; V27 cse4 [V27,T05] ( 11, 6.50) int -> rcx "CSE #01: aggressive"
+; V25 cse2 [V25,T16] ( 3, 1.50) int -> rdx "CSE #06: moderate"
+; V26 cse3 [V26,T05] ( 11, 6.50) int -> rcx "CSE #01: aggressive"
;
; Lcl frame size = 40
@@ -254,16 +253,11 @@ G_M22584_IG14: ; bbWeight=0.50, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000
G_M22584_IG15: ; bbWeight=0.50, gcrefRegs=0020 {rbp}, byrefRegs=0000 {}, byref
lea rax, bword ptr [rbp+0x0E]
; byrRegs +[rax]
- movzx rcx, word ptr [rax]
- mov edx, ecx
- and edx, 0xF000
- and ecx, 0xFFE
- or ecx, edx
- mov word ptr [rax], cx
+ and word ptr [rax], 0xFFFE
mov rax, rbp
; gcrRegs +[rax]
; byrRegs -[rax]
- ;; size=29 bbWeight=0.50 PerfScore 2.38
+ ;; size=12 bbWeight=0.50 PerfScore 1.88
G_M22584_IG16: ; bbWeight=1, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, epilog, nogc
; gcrRegs -[rbp]
add rsp, 40
@@ -327,7 +321,7 @@ G_M22584_IG19: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 674, prolog size 8, PerfScore 69.12, instruction count 162, allocated bytes for code 674 (MethodHash=d91fa7c7) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:Create(ushort,Microsoft.CodeAnalysis.GreenNode,Microsoft.CodeAnalysis.GreenNode):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (FullOpts)
+; Total bytes of code 657, prolog size 8, PerfScore 68.62, instruction count 157, allocated bytes for code 657 (MethodHash=d91fa7c7) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:Create(ushort,Microsoft.CodeAnalysis.GreenNode,Microsoft.CodeAnalysis.GreenNode):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (FullOpts)
; ============================================================
Unwind Info:-5 (-1.09%) : 764.dasm - System.Sha1ForNonSecretPurposes:Drain(System.Span`1[uint]) (FullOpts)
@@ -9,7 +9,7 @@
;
; V00 arg0 [V00,T20] ( 4, 8 ) byref -> rcx ld-addr-op single-def
; V01 loc0 [V01,T03] ( 14, 97.04) int -> registers
-; V02 loc1 [V02,T00] ( 16,112.88) int -> registers
+; V02 loc1 [V02,T00] ( 15,104.96) int -> registers
; V03 loc2 [V03,T01] ( 15,104.96) int -> registers
; V04 loc3 [V04,T02] ( 15,104.96) int -> registers
; V05 loc4 [V05,T05] ( 10, 65.36) int -> registers
@@ -143,13 +143,11 @@ G_M28360_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {rax}, byr
mov ebx, 40
;; size=5 bbWeight=1 PerfScore 0.25
G_M28360_IG09: ; bbWeight=7.92, gcrefRegs=0000 {}, byrefRegs=0001 {rax}, byref, isz
- mov esi, r8d
- and esi, r10d
- mov edi, r8d
- and edi, r9d
- or esi, edi
+ mov esi, r10d
+ and esi, r9d
mov edi, r10d
- and edi, r9d
+ or edi, r9d
+ and edi, r8d
or esi, edi
mov edi, edx
rol edi, 5
@@ -167,7 +165,7 @@ G_M28360_IG09: ; bbWeight=7.92, gcrefRegs=0000 {}, byrefRegs=0001 {rax},
mov r10d, r8d
mov r8d, ebp
jl SHORT G_M28360_IG09
- ;; size=72 bbWeight=7.92 PerfScore 77.22
+ ;; size=67 bbWeight=7.92 PerfScore 73.26
G_M28360_IG10: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {rax}, byref
mov ebx, 60
;; size=5 bbWeight=1 PerfScore 0.25
@@ -222,7 +220,7 @@ G_M28360_IG14: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 459, prolog size 8, PerfScore 439.96, instruction count 137, allocated bytes for code 459 (MethodHash=c3689137) for method System.Sha1ForNonSecretPurposes:Drain(System.Span`1[uint]) (FullOpts)
+; Total bytes of code 454, prolog size 8, PerfScore 436.00, instruction count 135, allocated bytes for code 454 (MethodHash=c3689137) for method System.Sha1ForNonSecretPurposes:Drain(System.Span`1[uint]) (FullOpts)
; ============================================================
Unwind Info:-15 (-0.96%) : 5030.dasm - System.Uri:ParseRemaining():this (FullOpts)
@@ -12,7 +12,7 @@
; V01 loc0 [V01,T00] ( 73, 38 ) long -> rsi
; V02 loc1 [V02,T07] ( 12, 9.50) ref -> rdi class-hnd exact single-def <System.String>
; V03 loc2 [V03,T02] ( 9, 15 ) int -> r14
-; V04 loc3 [V04,T09] ( 12, 6 ) int -> r15
+; V04 loc3 [V04,T09] ( 11, 5.50) int -> r15
; V05 loc4 [V05,T18] ( 5, 2.50) ubyte -> r13
; V06 loc5 [V06,T03] ( 27, 13.50) int -> r12
;* V07 loc6 [V07 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.ReadOnlySpan`1[char]>
@@ -437,13 +437,9 @@ G_M48529_IG23: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000
mov r9, 0xD1FFAB1E
test rsi, r9
je SHORT G_M48529_IG24
- mov r9d, r15d
- and r9d, 0xD1FFAB1E
- mov ecx, r15d
- and ecx, 0xD1FFAB1E
- or r9d, ecx
+ test r15d, 0xD1FFAB1E
jne SHORT G_M48529_IG25
- ;; size=72 bbWeight=0.50 PerfScore 3.38
+ ;; size=57 bbWeight=0.50 PerfScore 2.88
G_M48529_IG24: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
test al, 16
je SHORT G_M48529_IG29
@@ -705,7 +701,7 @@ G_M48529_IG43: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1570, prolog size 26, PerfScore 215.19, instruction count 409, allocated bytes for code 1570 (MethodHash=7d21426e) for method System.Uri:ParseRemaining():this (FullOpts)
+; Total bytes of code 1555, prolog size 26, PerfScore 214.69, instruction count 405, allocated bytes for code 1555 (MethodHash=7d21426e) for method System.Uri:ParseRemaining():this (FullOpts)
; ============================================================
Unwind Info:benchmarks.run_pgo_optrepeat.windows.x64.checked.mch
-16 (-4.43%) : 30891.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:ConvertToKeyword(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (FullOpts)
@@ -45,18 +45,17 @@
; V34 tmp30 [V34,T07] ( 3, 3 ) byref -> rcx single-def "dup spill"
;* V35 tmp31 [V35 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V36 tmp32 [V36 ] ( 0, 0 ) ref -> zero-ref "field V03._node (fldOffset=0x0)" P-INDEP
-; V37 tmp33 [V37,T19] ( 2, 1 ) ref -> r14 single-def "field V12._node (fldOffset=0x0)" P-INDEP
-; V38 tmp34 [V38,T20] ( 2, 1 ) ref -> r8 single-def "field V14._node (fldOffset=0x0)" P-INDEP
+; V37 tmp33 [V37,T18] ( 2, 1 ) ref -> r14 single-def "field V12._node (fldOffset=0x0)" P-INDEP
+; V38 tmp34 [V38,T19] ( 2, 1 ) ref -> r8 single-def "field V14._node (fldOffset=0x0)" P-INDEP
; V39 tmp35 [V39,T11] ( 4, 2 ) ref -> rdi single-def "field V18._node (fldOffset=0x0)" P-INDEP
; V40 tmp36 [V40,T12] ( 4, 2 ) ref -> rsi single-def "field V20._node (fldOffset=0x0)" P-INDEP
; V41 tmp37 [V41,T09] ( 3, 2.25) ref -> rax single-def "argument with side effect"
; V42 cse0 [V42,T04] ( 4, 3 ) long -> rbp "CSE #02: aggressive"
; V43 cse1 [V43,T03] ( 6, 3 ) long -> rsi multi-def "CSE #03: aggressive"
; V44 cse2 [V44,T16] ( 3, 1.50) int -> rdx "CSE #05: conservative"
-; V45 cse3 [V45,T17] ( 3, 1.50) int -> rax "CSE #07: conservative"
-; V46 cse4 [V46,T05] ( 4, 3 ) long -> rdi "CSE #01: aggressive"
-; V47 rat0 [V47,T02] ( 5, 3.75) ref -> rsi "replacement local"
-; V48 rat1 [V48,T18] ( 3, 1.25) long -> rcx "CSE for expectedClsNode"
+; V45 cse3 [V45,T05] ( 4, 3 ) long -> rdi "CSE #01: aggressive"
+; V46 rat0 [V46,T02] ( 5, 3.75) ref -> rsi "replacement local"
+; V47 rat1 [V47,T17] ( 3, 1.25) long -> rcx "CSE for expectedClsNode"
;
; Lcl frame size = 32
@@ -177,14 +176,9 @@ G_M12665_IG06: ; bbWeight=0.50, gcrefRegs=4048 {rbx rsi r14}, byrefRegs=0
G_M12665_IG07: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
lea rcx, bword ptr [r14+0x0E]
; byrRegs +[rcx]
- movzx rax, word ptr [rcx]
- mov edx, eax
- and edx, 0xF000
- and eax, 0xFFE
- or eax, edx
- mov word ptr [rcx], ax
+ and word ptr [rcx], 0xFFFE
jmp SHORT G_M12665_IG09
- ;; size=27 bbWeight=0.50 PerfScore 3.25
+ ;; size=11 bbWeight=0.50 PerfScore 2.75
G_M12665_IG08: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
; gcrRegs -[r14]
; byrRegs -[rcx]
@@ -276,7 +270,7 @@ G_M12665_IG13: ; bbWeight=0.50, epilog, nogc, extend
ret
;; size=11 bbWeight=0.50 PerfScore 1.88
-; Total bytes of code 361, prolog size 10, PerfScore 59.25, instruction count 115, allocated bytes for code 361 (MethodHash=b5e6ce86) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:ConvertToKeyword(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (FullOpts)
+; Total bytes of code 345, prolog size 10, PerfScore 58.75, instruction count 110, allocated bytes for code 345 (MethodHash=b5e6ce86) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:ConvertToKeyword(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (FullOpts)
; ============================================================
Unwind Info:-47 (-3.69%) : 30830.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:.cctor() (FullOpts)
@@ -15,7 +15,7 @@
;* V04 tmp3 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewArr temp" <<unknown class>>
;* V05 tmp4 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewArr temp" <<unknown class>>
;* V06 tmp5 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewArr temp" <<unknown class>>
-; V07 tmp6 [V07,T48] ( 6, 12 ) ref -> rax class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+MissingTokenWithTrivia>
+; V07 tmp6 [V07,T47] ( 6, 12 ) ref -> rax class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+MissingTokenWithTrivia>
; V08 tmp7 [V08,T05] ( 6, 96 ) ref -> r12 class-hnd exact "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken>
; V09 tmp8 [V09,T26] ( 2, 32 ) byref -> [rsp+0x68] spill-single-def "impAppendStmt"
; V10 tmp9 [V10,T00] ( 13,208 ) ref -> [rsp+0x60] class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+SyntaxTokenWithTrivia>
@@ -27,14 +27,14 @@
; V16 tmp15 [V16,T06] ( 5, 80 ) ref -> rax class-hnd exact "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+MissingTokenWithTrivia>
; V17 tmp16 [V17,T30] ( 2, 32 ) byref -> rcx "impAppendStmt"
;* V18 tmp17 [V18 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V19 tmp18 [V19,T56] ( 3, 6 ) byref -> rcx single-def "dup spill"
+; V19 tmp18 [V19,T55] ( 3, 6 ) byref -> rcx single-def "dup spill"
;* V20 tmp19 [V20 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-; V21 tmp20 [V21,T57] ( 3, 6 ) byref -> rcx single-def "dup spill"
+; V21 tmp20 [V21,T56] ( 3, 6 ) byref -> rcx single-def "dup spill"
;* V22 tmp21 [V22 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V23 tmp22 [V23 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V24 tmp23 [V24,T09] ( 3, 48 ) byref -> rcx "dup spill"
;* V25 tmp24 [V25 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-;* V26 tmp25 [V26,T47] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxTrivia>
+;* V26 tmp25 [V26,T46] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxTrivia>
; V27 tmp26 [V27,T04] ( 7,112 ) ref -> [rsp+0x38] class-hnd exact spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxTrivia>
;* V28 tmp27 [V28 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V29 tmp28 [V29,T10] ( 3, 48 ) byref -> rcx "dup spill"
@@ -73,29 +73,27 @@
; V62 tmp61 [V62,T21] ( 3, 48 ) ref -> rcx "arr expr"
; V63 tmp62 [V63,T22] ( 3, 48 ) ref -> rcx "arr expr"
; V64 tmp63 [V64,T23] ( 3, 48 ) ref -> rcx "arr expr"
-; V65 cse0 [V65,T24] ( 5, 40 ) int -> [rsp+0x74] spill-single-def "CSE #10: moderate"
-; V66 cse1 [V66,T35] ( 2, 16 ) ref -> r8 "CSE #09: moderate"
-; V67 cse2 [V67,T37] ( 3, 24 ) int -> rdx "CSE #06: moderate"
-; V68 cse3 [V68,T38] ( 3, 24 ) int -> rdx "CSE #11: moderate"
-; V69 cse4 [V69,T39] ( 3, 24 ) int -> rdx "CSE #17: moderate"
-; V70 cse5 [V70,T40] ( 3, 24 ) int -> rdx "CSE #21: moderate"
-; V71 cse6 [V71,T41] ( 3, 24 ) int -> r10 "CSE #26: moderate"
-; V72 cse7 [V72,T42] ( 3, 24 ) int -> r8 "CSE #28: moderate"
+; V65 cse0 [V65,T24] ( 5, 40 ) int -> [rsp+0x74] spill-single-def "CSE #09: moderate"
+; V66 cse1 [V66,T35] ( 2, 16 ) ref -> r8 "CSE #08: moderate"
+; V67 cse2 [V67,T37] ( 3, 24 ) int -> rdx "CSE #05: moderate"
+; V68 cse3 [V68,T38] ( 3, 24 ) int -> rdx "CSE #10: moderate"
+; V69 cse4 [V69,T39] ( 3, 24 ) int -> rdx "CSE #16: moderate"
+; V70 cse5 [V70,T40] ( 3, 24 ) int -> rdx "CSE #20: moderate"
+; V71 cse6 [V71,T41] ( 3, 24 ) int -> r10 "CSE #25: moderate"
+; V72 cse7 [V72,T42] ( 3, 24 ) int -> r10 "CSE #12: moderate"
; V73 cse8 [V73,T43] ( 3, 24 ) int -> r10 "CSE #13: moderate"
-; V74 cse9 [V74,T44] ( 3, 24 ) int -> r10 "CSE #14: moderate"
-; V75 cse10 [V75,T45] ( 3, 24 ) int -> r10 "CSE #19: moderate"
-; V76 cse11 [V76,T46] ( 3, 24 ) int -> r8 "CSE #23: moderate"
-; V77 cse12 [V77,T58] ( 3, 3 ) int -> rdx "CSE #02: moderate"
-; V78 cse13 [V78,T59] ( 3, 3 ) int -> rdx "CSE #04: moderate"
-; V79 cse14 [V79,T25] ( 4, 32 ) long -> r12 "CSE #15: moderate"
-; V80 cse15 [V80,T49] ( 3, 10 ) long -> rsi "CSE #05: moderate"
-; V81 cse16 [V81,T50] ( 3, 10 ) long -> rdi "CSE #07: moderate"
-; V82 cse17 [V82,T51] ( 3, 10 ) long -> rbp "CSE #16: moderate"
-; V83 cse18 [V83,T52] ( 3, 10 ) long -> r14 "CSE #20: moderate"
-; V84 cse19 [V84,T53] ( 3, 10 ) long -> r15 "CSE #24: moderate"
-; V85 cse20 [V85,T54] ( 3, 10 ) long -> rbx "CSE #25: moderate"
-; V86 cse21 [V86,T36] ( 3, 24 ) byref -> rdx "CSE #27: moderate"
-; V87 cse22 [V87,T55] ( 6, 6 ) long -> rbx "CSE #01: moderate"
+; V74 cse9 [V74,T44] ( 3, 24 ) int -> r10 "CSE #18: moderate"
+; V75 cse10 [V75,T45] ( 3, 24 ) int -> r8 "CSE #22: moderate"
+; V76 cse11 [V76,T57] ( 3, 3 ) int -> rdx "CSE #02: moderate"
+; V77 cse12 [V77,T25] ( 4, 32 ) long -> r12 "CSE #14: moderate"
+; V78 cse13 [V78,T48] ( 3, 10 ) long -> rsi "CSE #04: moderate"
+; V79 cse14 [V79,T49] ( 3, 10 ) long -> rdi "CSE #06: moderate"
+; V80 cse15 [V80,T50] ( 3, 10 ) long -> rbp "CSE #15: moderate"
+; V81 cse16 [V81,T51] ( 3, 10 ) long -> r14 "CSE #19: moderate"
+; V82 cse17 [V82,T52] ( 3, 10 ) long -> r15 "CSE #23: moderate"
+; V83 cse18 [V83,T53] ( 3, 10 ) long -> rbx "CSE #24: moderate"
+; V84 cse19 [V84,T36] ( 3, 24 ) byref -> rdx "CSE #26: moderate"
+; V85 cse20 [V85,T54] ( 6, 6 ) long -> rbx "CSE #01: moderate"
;
; Lcl frame size = 120
@@ -185,23 +183,16 @@ G_M32365_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
or edx, 1
mov word ptr [rcx], dx
lea rcx, bword ptr [rax+0x0E]
- movzx rdx, word ptr [rcx]
- mov r8d, edx
- and r8d, 0xF000
- and edx, 0xFFE
- or edx, r8d
- mov word ptr [rcx], dx
+ and word ptr [rcx], 0xFFFE
mov rcx, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
; byrRegs -[rcx]
mov rdx, rax
; gcrRegs +[rdx]
call CORINFO_HELP_ASSIGN_REF
; gcrRegs -[rax rdx]
- ;; size=288 bbWeight=1 PerfScore 31.00
-G_M32365_IG03: ; bbWeight=1, extend
mov r13d, 0x2001
- ;; size=6 bbWeight=1 PerfScore 0.25
-G_M32365_IG04: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ;; size=274 bbWeight=1 PerfScore 30.25
+G_M32365_IG03: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rcx, 0xD1FFAB1E ; Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken
call CORINFO_HELP_NEWSFAST
; gcrRegs +[rax]
@@ -211,7 +202,7 @@ G_M32365_IG04: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rcx, gword ptr [rsi]
; gcrRegs +[rcx]
cmp r13d, dword ptr [rcx+0x08]
- jae G_M32365_IG09
+ jae G_M32365_IG08
mov eax, r13d
; gcrRegs -[rax]
lea rax, bword ptr [rcx+8*rax+0x10]
@@ -256,7 +247,7 @@ G_M32365_IG04: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rcx, gword ptr [rdi]
; gcrRegs +[rcx]
cmp r13d, dword ptr [rcx+0x08]
- jae G_M32365_IG09
+ jae G_M32365_IG08
mov edx, r13d
lea rdx, bword ptr [rcx+8*rdx+0x10]
; byrRegs +[rdx]
@@ -286,7 +277,7 @@ G_M32365_IG04: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
or edx, r8d
or edx, 1
;; size=240 bbWeight=8 PerfScore 414.00
-G_M32365_IG05: ; bbWeight=8, extend
+G_M32365_IG04: ; bbWeight=8, extend
mov word ptr [rcx], dx
mov r8, gword ptr [rsp+0x38]
; gcrRegs +[r8]
@@ -357,7 +348,7 @@ G_M32365_IG05: ; bbWeight=8, extend
mov rcx, gword ptr [rbp]
; gcrRegs +[rcx]
cmp r13d, dword ptr [rcx+0x08]
- jae G_M32365_IG09
+ jae G_M32365_IG08
mov edx, r13d
lea rdx, bword ptr [rcx+8*rdx+0x10]
; byrRegs +[rdx]
@@ -372,7 +363,7 @@ G_M32365_IG05: ; bbWeight=8, extend
mov word ptr [rax+0x0C], r13w
mov ecx, dword ptr [rsp+0x74]
;; size=234 bbWeight=8 PerfScore 398.00
-G_M32365_IG06: ; bbWeight=8, extend
+G_M32365_IG05: ; bbWeight=8, extend
call [<unknown method>]
; gcrRegs -[r8]
; byrRegs -[rdx]
@@ -432,7 +423,7 @@ G_M32365_IG06: ; bbWeight=8, extend
mov rcx, gword ptr [r14]
; gcrRegs +[rcx]
cmp r13d, dword ptr [rcx+0x08]
- jae G_M32365_IG09
+ jae G_M32365_IG08
mov eax, r13d
; gcrRegs -[rax]
lea rax, bword ptr [rcx+8*rax+0x10]
@@ -459,7 +450,7 @@ G_M32365_IG06: ; bbWeight=8, extend
mov eax, edx
; gcrRegs -[rax]
;; size=225 bbWeight=8 PerfScore 420.00
-G_M32365_IG07: ; bbWeight=8, extend
+G_M32365_IG06: ; bbWeight=8, isz, extend
and eax, 0xF000
and edx, 0xFFF
or edx, eax
@@ -506,7 +497,7 @@ G_M32365_IG07: ; bbWeight=8, extend
mov rcx, gword ptr [rbx]
; gcrRegs +[rcx]
cmp r13d, dword ptr [rcx+0x08]
- jae G_M32365_IG09
+ jae SHORT G_M32365_IG08
mov edx, r13d
lea rcx, bword ptr [rcx+8*rdx+0x10]
; gcrRegs -[rcx]
@@ -525,25 +516,19 @@ G_M32365_IG07: ; bbWeight=8, extend
or r10d, r9d
or r10d, 1
mov word ptr [r8], r10w
- movzx r8, word ptr [rdx]
- ; byrRegs -[r8]
- mov r10d, r8d
- and r10d, 0xF000
- and r8d, 0xFFE
- or r8d, r10d
- mov word ptr [rdx], r8w
+ and word ptr [rdx], 0xFFFE
mov rdx, rax
; gcrRegs +[rdx]
; byrRegs -[rdx]
call CORINFO_HELP_ASSIGN_REF
; gcrRegs -[rax rdx]
- ; byrRegs -[rcx]
+ ; byrRegs -[rcx r8]
inc r13d
movzx r13, r13w
cmp r13d, 0x2130
- jle G_M32365_IG04
- ;; size=240 bbWeight=8 PerfScore 328.00
-G_M32365_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+ jle G_M32365_IG03
+ ;; size=213 bbWeight=8 PerfScore 320.00
+G_M32365_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
add rsp, 120
pop rbx
pop rbp
@@ -555,13 +540,13 @@ G_M32365_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
pop r15
ret
;; size=17 bbWeight=1 PerfScore 5.25
-G_M32365_IG09: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M32365_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
call CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1272, prolog size 16, PerfScore 1604.75, instruction count 296, allocated bytes for code 1272 (MethodHash=55c88192) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:.cctor() (FullOpts)
+; Total bytes of code 1225, prolog size 16, PerfScore 1595.75, instruction count 286, allocated bytes for code 1225 (MethodHash=55c88192) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:.cctor() (FullOpts)
; ============================================================
Unwind Info:-8 (-2.71%) : 540.dasm - System.RuntimeType:GetBaseType():System.RuntimeType:this (FullOpts)
@@ -10,10 +10,10 @@
;
; V00 this [V00,T06] ( 7, 5 ) ref -> rbx this class-hnd single-def <System.RuntimeType>
; V01 loc0 [V01,T09] ( 3, 1.50) ref -> rsi class-hnd single-def <System.Type[]>
-; V02 loc1 [V02,T08] ( 5, 4 ) ref -> rdi class-hnd <System.RuntimeType>
+; V02 loc1 [V02,T07] ( 5, 4 ) ref -> rdi class-hnd <System.RuntimeType>
;* V03 loc2 [V03,T12] ( 0, 0 ) int -> zero-ref
; V04 loc3 [V04,T02] ( 5, 14 ) ref -> r14 class-hnd exact <System.RuntimeType>
-; V05 loc4 [V05,T07] ( 3, 6 ) int -> rax
+; V05 loc4 [V05,T08] ( 2, 4 ) int -> rax
; V06 OutArgs [V06 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <UNNAMED>
;* V07 cse0 [V07,T11] ( 0, 0 ) byref -> zero-ref "CSE #03: aggressive"
; V08 cse1 [V08,T10] ( 3, 1.50) int -> rbp "CSE #01: aggressive"
@@ -126,12 +126,9 @@ G_M56028_IG10: ; bbWeight=2, gcrefRegs=4088 {rbx rdi r14}, byrefRegs=0040
call [System.RuntimeType:get_GenericParameterAttributes():int:this]
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M56028_IG12
- ;; size=33 bbWeight=2 PerfScore 15.50
+ ;; size=25 bbWeight=2 PerfScore 14.00
G_M56028_IG11: ; bbWeight=2, gcrefRegs=4008 {rbx r14}, byrefRegs=0040 {rsi}, byref
; gcrRegs -[rdi]
mov rdi, r14
@@ -200,7 +197,7 @@ G_M56028_IG19: ; bbWeight=0, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byr
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 295, prolog size 10, PerfScore 98.38, instruction count 92, allocated bytes for code 295 (MethodHash=370d2523) for method System.RuntimeType:GetBaseType():System.RuntimeType:this (FullOpts)
+; Total bytes of code 287, prolog size 10, PerfScore 96.88, instruction count 89, allocated bytes for code 287 (MethodHash=370d2523) for method System.RuntimeType:GetBaseType():System.RuntimeType:this (FullOpts)
; ============================================================
Unwind Info:-17 (-2.52%) : 30829.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:Create(ushort,Microsoft.CodeAnalysis.GreenNode,Microsoft.CodeAnalysis.GreenNode):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (FullOpts)
@@ -13,9 +13,9 @@
; V02 arg2 [V02,T02] ( 12, 7 ) ref -> rbx class-hnd single-def <Microsoft.CodeAnalysis.GreenNode>
; V03 OutArgs [V03 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <UNNAMED>
; V04 tmp1 [V04,T00] ( 10, 10 ) ref -> rbp class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+SyntaxTokenWithTrivia>
-; V05 tmp2 [V05,T18] ( 3, 0 ) ref -> rbx class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
-; V06 tmp3 [V06,T20] ( 2, 0 ) ref -> rsi class-hnd exact single-def "impImportAndPushBox" <System.String>
-; V07 tmp4 [V07,T19] ( 3, 0 ) ref -> rdi class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V05 tmp2 [V05,T17] ( 3, 0 ) ref -> rbx class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
+; V06 tmp3 [V06,T19] ( 2, 0 ) ref -> rsi class-hnd exact single-def "impImportAndPushBox" <System.String>
+; V07 tmp4 [V07,T18] ( 3, 0 ) ref -> rdi class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
; V08 tmp5 [V08,T01] ( 10, 10 ) ref -> rbp class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+MissingTokenWithTrivia>
;* V09 tmp6 [V09 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V10 tmp7 [V10,T07] ( 3, 3 ) byref -> rcx single-def "dup spill"
@@ -30,12 +30,11 @@
; V19 tmp16 [V19,T11] ( 3, 3 ) ref -> rax single-def "arr expr"
; V20 tmp17 [V20,T12] ( 3, 3 ) ref -> rax single-def "arr expr"
; V21 tmp18 [V21,T13] ( 3, 3 ) ref -> rax single-def "arr expr"
-; V22 tmp19 [V22,T21] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
-; V23 cse0 [V23,T14] ( 3, 1.50) ref -> rax "CSE #06: moderate"
+; V22 tmp19 [V22,T20] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V23 cse0 [V23,T14] ( 3, 1.50) ref -> rax "CSE #05: moderate"
; V24 cse1 [V24,T15] ( 3, 1.50) int -> rdx "CSE #02: moderate"
-; V25 cse2 [V25,T16] ( 3, 1.50) int -> rcx "CSE #04: moderate"
-; V26 cse3 [V26,T17] ( 3, 1.50) int -> rdx "CSE #07: moderate"
-; V27 cse4 [V27,T05] ( 11, 6.50) int -> rcx "CSE #01: aggressive"
+; V25 cse2 [V25,T16] ( 3, 1.50) int -> rdx "CSE #06: moderate"
+; V26 cse3 [V26,T05] ( 11, 6.50) int -> rcx "CSE #01: aggressive"
;
; Lcl frame size = 40
@@ -254,16 +253,11 @@ G_M22584_IG14: ; bbWeight=0.50, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000
G_M22584_IG15: ; bbWeight=0.50, gcrefRegs=0020 {rbp}, byrefRegs=0000 {}, byref
lea rax, bword ptr [rbp+0x0E]
; byrRegs +[rax]
- movzx rcx, word ptr [rax]
- mov edx, ecx
- and edx, 0xF000
- and ecx, 0xFFE
- or ecx, edx
- mov word ptr [rax], cx
+ and word ptr [rax], 0xFFFE
mov rax, rbp
; gcrRegs +[rax]
; byrRegs -[rax]
- ;; size=29 bbWeight=0.50 PerfScore 2.38
+ ;; size=12 bbWeight=0.50 PerfScore 1.88
G_M22584_IG16: ; bbWeight=1, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, epilog, nogc
; gcrRegs -[rbp]
add rsp, 40
@@ -327,7 +321,7 @@ G_M22584_IG19: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 674, prolog size 8, PerfScore 69.12, instruction count 162, allocated bytes for code 674 (MethodHash=d91fa7c7) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:Create(ushort,Microsoft.CodeAnalysis.GreenNode,Microsoft.CodeAnalysis.GreenNode):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (FullOpts)
+; Total bytes of code 657, prolog size 8, PerfScore 68.62, instruction count 157, allocated bytes for code 657 (MethodHash=d91fa7c7) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:Create(ushort,Microsoft.CodeAnalysis.GreenNode,Microsoft.CodeAnalysis.GreenNode):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (FullOpts)
; ============================================================
Unwind Info:-5 (-1.09%) : 764.dasm - System.Sha1ForNonSecretPurposes:Drain(System.Span`1[uint]) (FullOpts)
@@ -9,7 +9,7 @@
;
; V00 arg0 [V00,T20] ( 4, 8 ) byref -> rcx ld-addr-op single-def
; V01 loc0 [V01,T03] ( 14, 97.04) int -> registers
-; V02 loc1 [V02,T00] ( 16,112.88) int -> registers
+; V02 loc1 [V02,T00] ( 15,104.96) int -> registers
; V03 loc2 [V03,T01] ( 15,104.96) int -> registers
; V04 loc3 [V04,T02] ( 15,104.96) int -> registers
; V05 loc4 [V05,T05] ( 10, 65.36) int -> registers
@@ -143,13 +143,11 @@ G_M28360_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {rax}, byr
mov ebx, 40
;; size=5 bbWeight=1 PerfScore 0.25
G_M28360_IG09: ; bbWeight=7.92, gcrefRegs=0000 {}, byrefRegs=0001 {rax}, byref, isz
- mov esi, r8d
- and esi, r10d
- mov edi, r8d
- and edi, r9d
- or esi, edi
+ mov esi, r10d
+ and esi, r9d
mov edi, r10d
- and edi, r9d
+ or edi, r9d
+ and edi, r8d
or esi, edi
mov edi, edx
rol edi, 5
@@ -167,7 +165,7 @@ G_M28360_IG09: ; bbWeight=7.92, gcrefRegs=0000 {}, byrefRegs=0001 {rax},
mov r10d, r8d
mov r8d, ebp
jl SHORT G_M28360_IG09
- ;; size=72 bbWeight=7.92 PerfScore 77.22
+ ;; size=67 bbWeight=7.92 PerfScore 73.26
G_M28360_IG10: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {rax}, byref
mov ebx, 60
;; size=5 bbWeight=1 PerfScore 0.25
@@ -222,7 +220,7 @@ G_M28360_IG14: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 459, prolog size 8, PerfScore 439.96, instruction count 137, allocated bytes for code 459 (MethodHash=c3689137) for method System.Sha1ForNonSecretPurposes:Drain(System.Span`1[uint]) (FullOpts)
+; Total bytes of code 454, prolog size 8, PerfScore 436.00, instruction count 135, allocated bytes for code 454 (MethodHash=c3689137) for method System.Sha1ForNonSecretPurposes:Drain(System.Span`1[uint]) (FullOpts)
; ============================================================
Unwind Info:-15 (-0.96%) : 1187.dasm - System.Uri:ParseRemaining():this (FullOpts)
@@ -12,7 +12,7 @@
; V01 loc0 [V01,T00] ( 73, 38 ) long -> rsi
; V02 loc1 [V02,T07] ( 12, 9.50) ref -> rdi class-hnd exact single-def <System.String>
; V03 loc2 [V03,T02] ( 9, 15 ) int -> r14
-; V04 loc3 [V04,T09] ( 12, 6 ) int -> r15
+; V04 loc3 [V04,T09] ( 11, 5.50) int -> r15
; V05 loc4 [V05,T18] ( 5, 2.50) ubyte -> r13
; V06 loc5 [V06,T03] ( 27, 13.50) int -> r12
;* V07 loc6 [V07 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.ReadOnlySpan`1[char]>
@@ -437,13 +437,9 @@ G_M48529_IG23: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000
mov r9, 0xD1FFAB1E
test rsi, r9
je SHORT G_M48529_IG24
- mov r9d, r15d
- and r9d, 0xD1FFAB1E
- mov ecx, r15d
- and ecx, 0xD1FFAB1E
- or r9d, ecx
+ test r15d, 0xD1FFAB1E
jne SHORT G_M48529_IG25
- ;; size=72 bbWeight=0.50 PerfScore 3.38
+ ;; size=57 bbWeight=0.50 PerfScore 2.88
G_M48529_IG24: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
test al, 16
je SHORT G_M48529_IG29
@@ -705,7 +701,7 @@ G_M48529_IG43: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1570, prolog size 26, PerfScore 215.19, instruction count 409, allocated bytes for code 1570 (MethodHash=7d21426e) for method System.Uri:ParseRemaining():this (FullOpts)
+; Total bytes of code 1555, prolog size 26, PerfScore 214.69, instruction count 405, allocated bytes for code 1555 (MethodHash=7d21426e) for method System.Uri:ParseRemaining():this (FullOpts)
; ============================================================
Unwind Info:coreclr_tests.run.windows.x64.checked.mch
-13 (-32.50%) : 541737.dasm - b92693.AA:Static2(System.String[]):int[] (FullOpts)
@@ -10,7 +10,6 @@
;* V00 arg0 [V00 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.String[]>
; V01 OutArgs [V01 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <UNNAMED>
;* V02 tmp1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewArr temp" <int[]>
-; V03 cse0 [V03,T00] ( 3, 3 ) long -> rdx "CSE #04: aggressive"
;
; Lcl frame size = 40
@@ -18,21 +17,19 @@ G_M41991_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
sub rsp, 40
;; size=4 bbWeight=1 PerfScore 0.25
G_M41991_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- movsx rdx, word ptr [(reloc)] ; static handle
- imul rdx, rdx, 11
- sub rdx, rdx
mov rcx, 0xD1FFAB1E ; int[]
+ xor edx, edx
call CORINFO_HELP_NEWARR_1_VC
; gcrRegs +[rax]
; gcr arg pop 0
nop
- ;; size=31 bbWeight=1 PerfScore 5.75
+ ;; size=18 bbWeight=1 PerfScore 1.75
G_M41991_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 40
ret
;; size=5 bbWeight=1 PerfScore 1.25
-; Total bytes of code 40, prolog size 4, PerfScore 7.25, instruction count 9, allocated bytes for code 40 (MethodHash=118b5bf8) for method b92693.AA:Static2(System.String[]):int[] (FullOpts)
+; Total bytes of code 27, prolog size 4, PerfScore 3.25, instruction count 7, allocated bytes for code 27 (MethodHash=118b5bf8) for method b92693.AA:Static2(System.String[]):int[] (FullOpts)
; ============================================================
Unwind Info:-20 (-11.83%) : 521778.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:CreateMissing(ushort):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (FullOpts)
@@ -16,11 +16,10 @@
;* V05 tmp4 [V05 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
; V06 tmp5 [V06,T04] ( 3, 3 ) byref -> rcx single-def "dup spill"
;* V07 tmp6 [V07 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-; V08 cse0 [V08,T08] ( 2, 1 ) ref -> rax "CSE #02: aggressive"
+; V08 cse0 [V08,T07] ( 2, 1 ) ref -> rax "CSE #02: aggressive"
; V09 cse1 [V09,T06] ( 3, 1.50) int -> r8 "CSE #03: aggressive"
-; V10 cse2 [V10,T07] ( 3, 1.50) int -> rdx "CSE #05: aggressive"
-; V11 cse3 [V11,T02] ( 4, 3 ) int -> rsi "CSE #01: aggressive"
-; V12 cse4 [V12,T05] ( 3, 1.50) byref -> rcx "CSE #04: aggressive"
+; V10 cse2 [V10,T02] ( 4, 3 ) int -> rsi "CSE #01: aggressive"
+; V11 cse3 [V11,T05] ( 3, 1.50) byref -> rcx "CSE #04: aggressive"
;
; Lcl frame size = 40
@@ -56,14 +55,8 @@ G_M29564_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
or r8d, r10d
or r8d, 1
mov word ptr [rdx], r8w
- movzx rdx, word ptr [rcx]
- ; byrRegs -[rdx]
- mov r8d, edx
- and r8d, 0xF000
- and edx, 0xFFE
- or edx, r8d
- mov word ptr [rcx], dx
- ;; size=96 bbWeight=0.50 PerfScore 6.88
+ and word ptr [rcx], 0xFFFE
+ ;; size=76 bbWeight=0.50 PerfScore 6.38
G_M29564_IG04: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 40
pop rbx
@@ -72,7 +65,7 @@ G_M29564_IG04: ; bbWeight=0.50, epilog, nogc, extend
;; size=7 bbWeight=0.50 PerfScore 1.12
G_M29564_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rax]
- ; byrRegs -[rcx]
+ ; byrRegs -[rcx rdx]
mov rax, 0xD1FFAB1E ; const ptr
mov rax, gword ptr [rax]
; gcrRegs +[rax]
@@ -98,7 +91,7 @@ G_M29564_IG08: ; bbWeight=0.50, epilog, nogc, extend
ret
;; size=7 bbWeight=0.50 PerfScore 1.12
-; Total bytes of code 169, prolog size 6, PerfScore 17.62, instruction count 47, allocated bytes for code 169 (MethodHash=67038c83) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:CreateMissing(ushort):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (FullOpts)
+; Total bytes of code 149, prolog size 6, PerfScore 17.12, instruction count 42, allocated bytes for code 149 (MethodHash=67038c83) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:CreateMissing(ushort):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (FullOpts)
; ============================================================
Unwind Info:-14 (-5.60%) : 543511.dasm - GitHub_9692.C:InnerInfiniteLoop(int,int,int,int):bool (FullOpts)
@@ -9,14 +9,14 @@
;
; V00 arg0 [V00,T00] ( 13, 71 ) int -> rbx
; V01 arg1 [V01,T03] ( 7, 7 ) int -> rsi single-def
-; V02 arg2 [V02,T05] ( 6, 6 ) int -> rdi single-def
-; V03 arg3 [V03,T06] ( 6, 6 ) int -> r14 single-def
+; V02 arg2 [V02,T06] ( 5, 5 ) int -> r14 single-def
+; V03 arg3 [V03,T05] ( 6, 6 ) int -> rdi single-def
;* V04 loc0 [V04,T07] ( 0, 0 ) ubyte -> zero-ref do-not-enreg[Z] EH-live
; V05 OutArgs [V05 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <UNNAMED>
; V06 tmp1 [V06,T02] ( 3, 16 ) int -> rcx
; V07 tmp2 [V07,T01] ( 2, 32 ) int -> rbx "dup spill"
;* V08 tmp3 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd "impSpillSpecialSideEff" <<unknown class>>
-; V09 cse0 [V09,T04] ( 2, 9 ) int -> rdi hoist "CSE #11: aggressive"
+; V09 cse0 [V09,T04] ( 2, 9 ) int -> rdi hoist "CSE #10: aggressive"
;
; Lcl frame size = 32
@@ -32,10 +32,10 @@ G_M51606_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
lea rbp, [rsp+0x50]
mov ebx, ecx
mov esi, edx
- mov edi, r8d
- mov r14d, r9d
+ mov r14d, r8d
+ mov edi, r9d
;; size=29 bbWeight=1 PerfScore 8.75
-G_M51606_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M51606_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
xor ecx, ecx
call [<unknown method>]
; gcr arg pop 0
@@ -43,23 +43,20 @@ G_M51606_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
call [<unknown method>]
; gcr arg pop 0
cmp ebx, 1
- je G_M51606_IG11
- mov r15d, edi
- imul r15d, esi
- mov r13d, edi
- imul r13d, edi
- add r15d, r13d
- mov r13d, esi
- imul r13d, esi
- add r15d, r13d
- imul edi, r14d
- add edi, r15d
+ je SHORT G_M51606_IG11
mov r15d, esi
- imul r15d, r14d
- add edi, r15d
- imul r14d, r14d
+ imul r15d, esi
+ lea r13d, [rsi+r14]
+ imul r13d, r14d
+ add r15d, r13d
+ imul r14d, edi
+ add r14d, r15d
+ mov r15d, esi
+ imul r15d, edi
+ add r14d, r15d
+ imul edi, edi
add edi, r14d
- ;; size=79 bbWeight=1 PerfScore 22.00
+ ;; size=65 bbWeight=1 PerfScore 19.75
G_M51606_IG03: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov ecx, edi
call [<unknown method>]
@@ -149,7 +146,7 @@ G_M51606_IG17: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=5 bbWeight=0 PerfScore 0.00
-; Total bytes of code 250, prolog size 29, PerfScore 190.00, instruction count 87, allocated bytes for code 250 (MethodHash=07ae3669) for method GitHub_9692.C:InnerInfiniteLoop(int,int,int,int):bool (FullOpts)
+; Total bytes of code 236, prolog size 29, PerfScore 187.75, instruction count 84, allocated bytes for code 236 (MethodHash=07ae3669) for method GitHub_9692.C:InnerInfiniteLoop(int,int,int,int):bool (FullOpts)
; ============================================================
Unwind Info:-16 (-4.42%) : 497453.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:ConvertToKeyword(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (FullOpts)
@@ -45,18 +45,17 @@
; V34 tmp30 [V34,T07] ( 3, 3 ) byref -> rcx single-def "dup spill"
;* V35 tmp31 [V35 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V36 tmp32 [V36 ] ( 0, 0 ) ref -> zero-ref "field V03._node (fldOffset=0x0)" P-INDEP
-; V37 tmp33 [V37,T19] ( 2, 1 ) ref -> r14 single-def "field V12._node (fldOffset=0x0)" P-INDEP
-; V38 tmp34 [V38,T20] ( 2, 1 ) ref -> r8 single-def "field V14._node (fldOffset=0x0)" P-INDEP
+; V37 tmp33 [V37,T18] ( 2, 1 ) ref -> r14 single-def "field V12._node (fldOffset=0x0)" P-INDEP
+; V38 tmp34 [V38,T19] ( 2, 1 ) ref -> r8 single-def "field V14._node (fldOffset=0x0)" P-INDEP
; V39 tmp35 [V39,T11] ( 4, 2 ) ref -> rdi single-def "field V18._node (fldOffset=0x0)" P-INDEP
; V40 tmp36 [V40,T12] ( 4, 2 ) ref -> rsi single-def "field V20._node (fldOffset=0x0)" P-INDEP
; V41 tmp37 [V41,T09] ( 3, 2.25) ref -> rax single-def "argument with side effect"
; V42 cse0 [V42,T04] ( 4, 3 ) long -> rbp "CSE #02: aggressive"
; V43 cse1 [V43,T03] ( 6, 3 ) long -> rsi multi-def "CSE #03: aggressive"
; V44 cse2 [V44,T16] ( 3, 1.50) int -> rdx "CSE #05: conservative"
-; V45 cse3 [V45,T17] ( 3, 1.50) int -> rax "CSE #07: conservative"
-; V46 cse4 [V46,T05] ( 4, 3 ) long -> rdi "CSE #01: aggressive"
-; V47 rat0 [V47,T02] ( 5, 3.75) ref -> rsi "replacement local"
-; V48 rat1 [V48,T18] ( 3, 1.25) long -> rcx "CSE for expectedClsNode"
+; V45 cse3 [V45,T05] ( 4, 3 ) long -> rdi "CSE #01: aggressive"
+; V46 rat0 [V46,T02] ( 5, 3.75) ref -> rsi "replacement local"
+; V47 rat1 [V47,T17] ( 3, 1.25) long -> rcx "CSE for expectedClsNode"
;
; Lcl frame size = 32
@@ -177,14 +176,9 @@ G_M12665_IG06: ; bbWeight=0.50, gcrefRegs=4048 {rbx rsi r14}, byrefRegs=0
G_M12665_IG07: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
lea rcx, bword ptr [r14+0x0E]
; byrRegs +[rcx]
- movzx rax, word ptr [rcx]
- mov edx, eax
- and edx, 0xF000
- and eax, 0xFFE
- or eax, edx
- mov word ptr [rcx], ax
+ and word ptr [rcx], 0xFFFE
jmp SHORT G_M12665_IG09
- ;; size=27 bbWeight=0.50 PerfScore 3.25
+ ;; size=11 bbWeight=0.50 PerfScore 2.75
G_M12665_IG08: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
; gcrRegs -[r14]
; byrRegs -[rcx]
@@ -276,7 +270,7 @@ G_M12665_IG13: ; bbWeight=0.50, epilog, nogc, extend
ret
;; size=11 bbWeight=0.50 PerfScore 1.88
-; Total bytes of code 362, prolog size 10, PerfScore 59.50, instruction count 115, allocated bytes for code 362 (MethodHash=b5e6ce86) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:ConvertToKeyword(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (FullOpts)
+; Total bytes of code 346, prolog size 10, PerfScore 59.00, instruction count 110, allocated bytes for code 346 (MethodHash=b5e6ce86) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:ConvertToKeyword(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (FullOpts)
; ============================================================
Unwind Info:-47 (-3.69%) : 497405.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:.cctor() (FullOpts)
@@ -15,7 +15,7 @@
;* V04 tmp3 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewArr temp" <<unknown class>>
;* V05 tmp4 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewArr temp" <<unknown class>>
;* V06 tmp5 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewArr temp" <<unknown class>>
-; V07 tmp6 [V07,T48] ( 6, 12 ) ref -> rax class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+MissingTokenWithTrivia>
+; V07 tmp6 [V07,T47] ( 6, 12 ) ref -> rax class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+MissingTokenWithTrivia>
; V08 tmp7 [V08,T05] ( 6, 96 ) ref -> r12 class-hnd exact "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken>
; V09 tmp8 [V09,T26] ( 2, 32 ) byref -> [rsp+0x68] spill-single-def "impAppendStmt"
; V10 tmp9 [V10,T00] ( 13,208 ) ref -> [rsp+0x60] class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+SyntaxTokenWithTrivia>
@@ -27,14 +27,14 @@
; V16 tmp15 [V16,T06] ( 5, 80 ) ref -> rax class-hnd exact "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+MissingTokenWithTrivia>
; V17 tmp16 [V17,T30] ( 2, 32 ) byref -> rcx "impAppendStmt"
;* V18 tmp17 [V18 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V19 tmp18 [V19,T56] ( 3, 6 ) byref -> rcx single-def "dup spill"
+; V19 tmp18 [V19,T55] ( 3, 6 ) byref -> rcx single-def "dup spill"
;* V20 tmp19 [V20 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-; V21 tmp20 [V21,T57] ( 3, 6 ) byref -> rcx single-def "dup spill"
+; V21 tmp20 [V21,T56] ( 3, 6 ) byref -> rcx single-def "dup spill"
;* V22 tmp21 [V22 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V23 tmp22 [V23 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V24 tmp23 [V24,T09] ( 3, 48 ) byref -> rcx "dup spill"
;* V25 tmp24 [V25 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-;* V26 tmp25 [V26,T47] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxTrivia>
+;* V26 tmp25 [V26,T46] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxTrivia>
; V27 tmp26 [V27,T04] ( 7,112 ) ref -> [rsp+0x38] class-hnd exact spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxTrivia>
;* V28 tmp27 [V28 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V29 tmp28 [V29,T10] ( 3, 48 ) byref -> rcx "dup spill"
@@ -73,29 +73,27 @@
; V62 tmp61 [V62,T21] ( 3, 48 ) ref -> rcx "arr expr"
; V63 tmp62 [V63,T22] ( 3, 48 ) ref -> rcx "arr expr"
; V64 tmp63 [V64,T23] ( 3, 48 ) ref -> rcx "arr expr"
-; V65 cse0 [V65,T24] ( 5, 40 ) int -> [rsp+0x74] spill-single-def "CSE #10: moderate"
-; V66 cse1 [V66,T35] ( 2, 16 ) ref -> r8 "CSE #09: moderate"
-; V67 cse2 [V67,T37] ( 3, 24 ) int -> rdx "CSE #06: moderate"
-; V68 cse3 [V68,T38] ( 3, 24 ) int -> rdx "CSE #11: moderate"
-; V69 cse4 [V69,T39] ( 3, 24 ) int -> rdx "CSE #17: moderate"
-; V70 cse5 [V70,T40] ( 3, 24 ) int -> rdx "CSE #21: moderate"
-; V71 cse6 [V71,T41] ( 3, 24 ) int -> r10 "CSE #26: moderate"
-; V72 cse7 [V72,T42] ( 3, 24 ) int -> r8 "CSE #28: moderate"
+; V65 cse0 [V65,T24] ( 5, 40 ) int -> [rsp+0x74] spill-single-def "CSE #09: moderate"
+; V66 cse1 [V66,T35] ( 2, 16 ) ref -> r8 "CSE #08: moderate"
+; V67 cse2 [V67,T37] ( 3, 24 ) int -> rdx "CSE #05: moderate"
+; V68 cse3 [V68,T38] ( 3, 24 ) int -> rdx "CSE #10: moderate"
+; V69 cse4 [V69,T39] ( 3, 24 ) int -> rdx "CSE #16: moderate"
+; V70 cse5 [V70,T40] ( 3, 24 ) int -> rdx "CSE #20: moderate"
+; V71 cse6 [V71,T41] ( 3, 24 ) int -> r10 "CSE #25: moderate"
+; V72 cse7 [V72,T42] ( 3, 24 ) int -> r10 "CSE #12: moderate"
; V73 cse8 [V73,T43] ( 3, 24 ) int -> r10 "CSE #13: moderate"
-; V74 cse9 [V74,T44] ( 3, 24 ) int -> r10 "CSE #14: moderate"
-; V75 cse10 [V75,T45] ( 3, 24 ) int -> r10 "CSE #19: moderate"
-; V76 cse11 [V76,T46] ( 3, 24 ) int -> r8 "CSE #23: moderate"
-; V77 cse12 [V77,T58] ( 3, 3 ) int -> rdx "CSE #02: moderate"
-; V78 cse13 [V78,T59] ( 3, 3 ) int -> rdx "CSE #04: moderate"
-; V79 cse14 [V79,T25] ( 4, 32 ) long -> r12 "CSE #15: moderate"
-; V80 cse15 [V80,T49] ( 3, 10 ) long -> rsi "CSE #05: moderate"
-; V81 cse16 [V81,T50] ( 3, 10 ) long -> rdi "CSE #07: moderate"
-; V82 cse17 [V82,T51] ( 3, 10 ) long -> rbp "CSE #16: moderate"
-; V83 cse18 [V83,T52] ( 3, 10 ) long -> r14 "CSE #20: moderate"
-; V84 cse19 [V84,T53] ( 3, 10 ) long -> r15 "CSE #24: moderate"
-; V85 cse20 [V85,T54] ( 3, 10 ) long -> rbx "CSE #25: moderate"
-; V86 cse21 [V86,T36] ( 3, 24 ) byref -> rdx "CSE #27: moderate"
-; V87 cse22 [V87,T55] ( 6, 6 ) long -> rbx "CSE #01: moderate"
+; V74 cse9 [V74,T44] ( 3, 24 ) int -> r10 "CSE #18: moderate"
+; V75 cse10 [V75,T45] ( 3, 24 ) int -> r8 "CSE #22: moderate"
+; V76 cse11 [V76,T57] ( 3, 3 ) int -> rdx "CSE #02: moderate"
+; V77 cse12 [V77,T25] ( 4, 32 ) long -> r12 "CSE #14: moderate"
+; V78 cse13 [V78,T48] ( 3, 10 ) long -> rsi "CSE #04: moderate"
+; V79 cse14 [V79,T49] ( 3, 10 ) long -> rdi "CSE #06: moderate"
+; V80 cse15 [V80,T50] ( 3, 10 ) long -> rbp "CSE #15: moderate"
+; V81 cse16 [V81,T51] ( 3, 10 ) long -> r14 "CSE #19: moderate"
+; V82 cse17 [V82,T52] ( 3, 10 ) long -> r15 "CSE #23: moderate"
+; V83 cse18 [V83,T53] ( 3, 10 ) long -> rbx "CSE #24: moderate"
+; V84 cse19 [V84,T36] ( 3, 24 ) byref -> rdx "CSE #26: moderate"
+; V85 cse20 [V85,T54] ( 6, 6 ) long -> rbx "CSE #01: moderate"
;
; Lcl frame size = 120
@@ -185,23 +183,16 @@ G_M32365_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
or edx, 1
mov word ptr [rcx], dx
lea rcx, bword ptr [rax+0x0E]
- movzx rdx, word ptr [rcx]
- mov r8d, edx
- and r8d, 0xF000
- and edx, 0xFFE
- or edx, r8d
- mov word ptr [rcx], dx
+ and word ptr [rcx], 0xFFFE
mov rcx, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
; byrRegs -[rcx]
mov rdx, rax
; gcrRegs +[rdx]
call CORINFO_HELP_ASSIGN_REF
; gcrRegs -[rax rdx]
- ;; size=288 bbWeight=1 PerfScore 31.00
-G_M32365_IG03: ; bbWeight=1, extend
mov r13d, 0x2001
- ;; size=6 bbWeight=1 PerfScore 0.25
-G_M32365_IG04: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ;; size=274 bbWeight=1 PerfScore 30.25
+G_M32365_IG03: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rcx, 0xD1FFAB1E ; Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken
call CORINFO_HELP_NEWSFAST
; gcrRegs +[rax]
@@ -211,7 +202,7 @@ G_M32365_IG04: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rcx, gword ptr [rsi]
; gcrRegs +[rcx]
cmp r13d, dword ptr [rcx+0x08]
- jae G_M32365_IG09
+ jae G_M32365_IG08
mov eax, r13d
; gcrRegs -[rax]
lea rax, bword ptr [rcx+8*rax+0x10]
@@ -256,7 +247,7 @@ G_M32365_IG04: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rcx, gword ptr [rdi]
; gcrRegs +[rcx]
cmp r13d, dword ptr [rcx+0x08]
- jae G_M32365_IG09
+ jae G_M32365_IG08
mov edx, r13d
lea rdx, bword ptr [rcx+8*rdx+0x10]
; byrRegs +[rdx]
@@ -286,7 +277,7 @@ G_M32365_IG04: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
or edx, r8d
or edx, 1
;; size=240 bbWeight=8 PerfScore 414.00
-G_M32365_IG05: ; bbWeight=8, extend
+G_M32365_IG04: ; bbWeight=8, extend
mov word ptr [rcx], dx
mov r8, gword ptr [rsp+0x38]
; gcrRegs +[r8]
@@ -357,7 +348,7 @@ G_M32365_IG05: ; bbWeight=8, extend
mov rcx, gword ptr [rbp]
; gcrRegs +[rcx]
cmp r13d, dword ptr [rcx+0x08]
- jae G_M32365_IG09
+ jae G_M32365_IG08
mov edx, r13d
lea rdx, bword ptr [rcx+8*rdx+0x10]
; byrRegs +[rdx]
@@ -372,7 +363,7 @@ G_M32365_IG05: ; bbWeight=8, extend
mov word ptr [rax+0x0C], r13w
mov ecx, dword ptr [rsp+0x74]
;; size=234 bbWeight=8 PerfScore 398.00
-G_M32365_IG06: ; bbWeight=8, extend
+G_M32365_IG05: ; bbWeight=8, extend
call [<unknown method>]
; gcrRegs -[r8]
; byrRegs -[rdx]
@@ -432,7 +423,7 @@ G_M32365_IG06: ; bbWeight=8, extend
mov rcx, gword ptr [r14]
; gcrRegs +[rcx]
cmp r13d, dword ptr [rcx+0x08]
- jae G_M32365_IG09
+ jae G_M32365_IG08
mov eax, r13d
; gcrRegs -[rax]
lea rax, bword ptr [rcx+8*rax+0x10]
@@ -459,7 +450,7 @@ G_M32365_IG06: ; bbWeight=8, extend
mov eax, edx
; gcrRegs -[rax]
;; size=225 bbWeight=8 PerfScore 420.00
-G_M32365_IG07: ; bbWeight=8, extend
+G_M32365_IG06: ; bbWeight=8, isz, extend
and eax, 0xF000
and edx, 0xFFF
or edx, eax
@@ -506,7 +497,7 @@ G_M32365_IG07: ; bbWeight=8, extend
mov rcx, gword ptr [rbx]
; gcrRegs +[rcx]
cmp r13d, dword ptr [rcx+0x08]
- jae G_M32365_IG09
+ jae SHORT G_M32365_IG08
mov edx, r13d
lea rcx, bword ptr [rcx+8*rdx+0x10]
; gcrRegs -[rcx]
@@ -525,25 +516,19 @@ G_M32365_IG07: ; bbWeight=8, extend
or r10d, r9d
or r10d, 1
mov word ptr [r8], r10w
- movzx r8, word ptr [rdx]
- ; byrRegs -[r8]
- mov r10d, r8d
- and r10d, 0xF000
- and r8d, 0xFFE
- or r8d, r10d
- mov word ptr [rdx], r8w
+ and word ptr [rdx], 0xFFFE
mov rdx, rax
; gcrRegs +[rdx]
; byrRegs -[rdx]
call CORINFO_HELP_ASSIGN_REF
; gcrRegs -[rax rdx]
- ; byrRegs -[rcx]
+ ; byrRegs -[rcx r8]
inc r13d
movzx r13, r13w
cmp r13d, 0x2130
- jle G_M32365_IG04
- ;; size=240 bbWeight=8 PerfScore 328.00
-G_M32365_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+ jle G_M32365_IG03
+ ;; size=213 bbWeight=8 PerfScore 320.00
+G_M32365_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
add rsp, 120
pop rbx
pop rbp
@@ -555,13 +540,13 @@ G_M32365_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
pop r15
ret
;; size=17 bbWeight=1 PerfScore 5.25
-G_M32365_IG09: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M32365_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
call CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1272, prolog size 16, PerfScore 1604.75, instruction count 296, allocated bytes for code 1272 (MethodHash=55c88192) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:.cctor() (FullOpts)
+; Total bytes of code 1225, prolog size 16, PerfScore 1595.75, instruction count 286, allocated bytes for code 1225 (MethodHash=55c88192) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:.cctor() (FullOpts)
; ============================================================
Unwind Info:-8 (-2.71%) : 325384.dasm - System.RuntimeType:GetBaseType():System.RuntimeType:this (FullOpts)
@@ -10,10 +10,10 @@
;
; V00 this [V00,T06] ( 7, 5 ) ref -> rbx this class-hnd single-def <System.RuntimeType>
; V01 loc0 [V01,T09] ( 3, 1.50) ref -> rsi class-hnd single-def <System.Type[]>
-; V02 loc1 [V02,T08] ( 5, 4 ) ref -> rdi class-hnd <System.RuntimeType>
+; V02 loc1 [V02,T07] ( 5, 4 ) ref -> rdi class-hnd <System.RuntimeType>
;* V03 loc2 [V03,T12] ( 0, 0 ) int -> zero-ref
; V04 loc3 [V04,T02] ( 5, 14 ) ref -> r14 class-hnd exact <System.RuntimeType>
-; V05 loc4 [V05,T07] ( 3, 6 ) int -> rax
+; V05 loc4 [V05,T08] ( 2, 4 ) int -> rax
; V06 OutArgs [V06 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <UNNAMED>
;* V07 cse0 [V07,T11] ( 0, 0 ) byref -> zero-ref "CSE #03: aggressive"
; V08 cse1 [V08,T10] ( 3, 1.50) int -> rbp "CSE #01: aggressive"
@@ -126,12 +126,9 @@ G_M56028_IG10: ; bbWeight=2, gcrefRegs=4088 {rbx rdi r14}, byrefRegs=0040
call [System.RuntimeType:get_GenericParameterAttributes():int:this]
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M56028_IG12
- ;; size=33 bbWeight=2 PerfScore 15.50
+ ;; size=25 bbWeight=2 PerfScore 14.00
G_M56028_IG11: ; bbWeight=2, gcrefRegs=4008 {rbx r14}, byrefRegs=0040 {rsi}, byref
; gcrRegs -[rdi]
mov rdi, r14
@@ -200,7 +197,7 @@ G_M56028_IG19: ; bbWeight=0, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byr
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 295, prolog size 10, PerfScore 98.38, instruction count 92, allocated bytes for code 295 (MethodHash=370d2523) for method System.RuntimeType:GetBaseType():System.RuntimeType:this (FullOpts)
+; Total bytes of code 287, prolog size 10, PerfScore 96.88, instruction count 89, allocated bytes for code 287 (MethodHash=370d2523) for method System.RuntimeType:GetBaseType():System.RuntimeType:this (FullOpts)
; ============================================================
Unwind Info:-17 (-2.52%) : 497404.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:Create(ushort,Microsoft.CodeAnalysis.GreenNode,Microsoft.CodeAnalysis.GreenNode):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (FullOpts)
@@ -13,9 +13,9 @@
; V02 arg2 [V02,T02] ( 12, 7 ) ref -> rbx class-hnd single-def <Microsoft.CodeAnalysis.GreenNode>
; V03 OutArgs [V03 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <UNNAMED>
; V04 tmp1 [V04,T00] ( 10, 10 ) ref -> rbp class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+SyntaxTokenWithTrivia>
-; V05 tmp2 [V05,T18] ( 3, 0 ) ref -> rbx class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
-; V06 tmp3 [V06,T20] ( 2, 0 ) ref -> rsi class-hnd exact single-def "impImportAndPushBox" <System.String>
-; V07 tmp4 [V07,T19] ( 3, 0 ) ref -> rdi class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V05 tmp2 [V05,T17] ( 3, 0 ) ref -> rbx class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
+; V06 tmp3 [V06,T19] ( 2, 0 ) ref -> rsi class-hnd exact single-def "impImportAndPushBox" <System.String>
+; V07 tmp4 [V07,T18] ( 3, 0 ) ref -> rdi class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
; V08 tmp5 [V08,T01] ( 10, 10 ) ref -> rbp class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+MissingTokenWithTrivia>
;* V09 tmp6 [V09 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V10 tmp7 [V10,T07] ( 3, 3 ) byref -> rcx single-def "dup spill"
@@ -30,12 +30,11 @@
; V19 tmp16 [V19,T11] ( 3, 3 ) ref -> rax single-def "arr expr"
; V20 tmp17 [V20,T12] ( 3, 3 ) ref -> rax single-def "arr expr"
; V21 tmp18 [V21,T13] ( 3, 3 ) ref -> rax single-def "arr expr"
-; V22 tmp19 [V22,T21] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
-; V23 cse0 [V23,T14] ( 3, 1.50) ref -> rax "CSE #06: moderate"
+; V22 tmp19 [V22,T20] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V23 cse0 [V23,T14] ( 3, 1.50) ref -> rax "CSE #05: moderate"
; V24 cse1 [V24,T15] ( 3, 1.50) int -> rdx "CSE #02: moderate"
-; V25 cse2 [V25,T16] ( 3, 1.50) int -> rcx "CSE #04: moderate"
-; V26 cse3 [V26,T17] ( 3, 1.50) int -> rdx "CSE #07: moderate"
-; V27 cse4 [V27,T05] ( 11, 6.50) int -> rcx "CSE #01: aggressive"
+; V25 cse2 [V25,T16] ( 3, 1.50) int -> rdx "CSE #06: moderate"
+; V26 cse3 [V26,T05] ( 11, 6.50) int -> rcx "CSE #01: aggressive"
;
; Lcl frame size = 40
@@ -254,16 +253,11 @@ G_M22584_IG14: ; bbWeight=0.50, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000
G_M22584_IG15: ; bbWeight=0.50, gcrefRegs=0020 {rbp}, byrefRegs=0000 {}, byref
lea rax, bword ptr [rbp+0x0E]
; byrRegs +[rax]
- movzx rcx, word ptr [rax]
- mov edx, ecx
- and edx, 0xF000
- and ecx, 0xFFE
- or ecx, edx
- mov word ptr [rax], cx
+ and word ptr [rax], 0xFFFE
mov rax, rbp
; gcrRegs +[rax]
; byrRegs -[rax]
- ;; size=29 bbWeight=0.50 PerfScore 2.38
+ ;; size=12 bbWeight=0.50 PerfScore 1.88
G_M22584_IG16: ; bbWeight=1, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, epilog, nogc
; gcrRegs -[rbp]
add rsp, 40
@@ -327,7 +321,7 @@ G_M22584_IG19: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 674, prolog size 8, PerfScore 69.12, instruction count 162, allocated bytes for code 674 (MethodHash=d91fa7c7) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:Create(ushort,Microsoft.CodeAnalysis.GreenNode,Microsoft.CodeAnalysis.GreenNode):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (FullOpts)
+; Total bytes of code 657, prolog size 8, PerfScore 68.62, instruction count 157, allocated bytes for code 657 (MethodHash=d91fa7c7) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:Create(ushort,Microsoft.CodeAnalysis.GreenNode,Microsoft.CodeAnalysis.GreenNode):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (FullOpts)
; ============================================================
Unwind Info:-9 (-1.32%) : 522004.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:PerformMemberOverloadResolutionStart[System.__Canon](Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon]],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,bool,byref,ushort,bool):this (FullOpts)
@@ -16,7 +16,7 @@
; V05 arg4 [V05,T23] ( 1, 4 ) ref -> [rbp+0x38] class-hnd single-def <Microsoft.CodeAnalysis.CSharp.AnalyzedArguments>
; V06 arg5 [V06,T24] ( 1, 4 ) ubyte -> [rbp+0x40] single-def
; V07 arg6 [V07,T14] ( 3, 5.50) byref -> r15 single-def
-; V08 arg7 [V08,T15] ( 3, 5 ) ushort -> r13 single-def
+; V08 arg7 [V08,T15] ( 2, 4.50) ushort -> r13 single-def
; V09 arg8 [V09,T37] ( 1, 1 ) ubyte -> [rbp+0x58] single-def
; V10 loc0 [V10 ] ( 3, 5.50) ref -> [rbp-0x48] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]>
;* V11 loc1 [V11,T38] ( 0, 0 ) int -> zero-ref
@@ -219,15 +219,12 @@ G_M55161_IG13: ; bbWeight=1, gcrefRegs=4080 {rdi r14}, byrefRegs=8000 {r1
;; size=25 bbWeight=1 PerfScore 5.75
G_M55161_IG14: ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=8000 {r15}, byref, isz
movzx rcx, r13w
- and ecx, 64
- movzx rdx, r13w
- and edx, 512
- or ecx, edx
+ test ecx, 576
jne G_M55161_IG21
mov rcx, qword ptr [rsi+0x48]
cmp qword ptr [rcx+0x08], 48
jle SHORT G_M55161_IG20
- ;; size=36 bbWeight=0.50 PerfScore 3.62
+ ;; size=27 bbWeight=0.50 PerfScore 3.25
G_M55161_IG15: ; bbWeight=0.40, gcrefRegs=0080 {rdi}, byrefRegs=8000 {r15}, byref, isz
mov rcx, qword ptr [rcx+0x30]
test rcx, rcx
@@ -343,7 +340,7 @@ G_M55161_IG29: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 684, prolog size 37, PerfScore 261.70, instruction count 170, allocated bytes for code 684 (MethodHash=bcc22886) for method Microsoft.CodeAnalysis.CSharp.OverloadResolution:PerformMemberOverloadResolutionStart[System.__Canon](Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon]],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,bool,byref,ushort,bool):this (FullOpts)
+; Total bytes of code 675, prolog size 37, PerfScore 261.33, instruction count 167, allocated bytes for code 675 (MethodHash=bcc22886) for method Microsoft.CodeAnalysis.CSharp.OverloadResolution:PerformMemberOverloadResolutionStart[System.__Canon](Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon]],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,bool,byref,ushort,bool):this (FullOpts)
; ============================================================
Unwind Info:-15 (-0.83%) : 501442.dasm - System.Uri:ParseRemaining():this (FullOpts)
@@ -12,7 +12,7 @@
; V01 loc0 [V01,T00] ( 73, 38 ) long -> rsi
; V02 loc1 [V02,T07] ( 12, 9.50) ref -> rdi class-hnd exact single-def <System.String>
; V03 loc2 [V03,T02] ( 9, 15 ) int -> r14
-; V04 loc3 [V04,T09] ( 12, 6 ) int -> r15
+; V04 loc3 [V04,T09] ( 11, 5.50) int -> r15
; V05 loc4 [V05,T20] ( 5, 2.50) ubyte -> r13
; V06 loc5 [V06,T03] ( 27, 13.50) int -> r12
;* V07 loc6 [V07 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.ReadOnlySpan`1[char]>
@@ -516,13 +516,9 @@ G_M48529_IG30: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000
mov rdx, 0xD1FFAB1E
test rsi, rdx
je SHORT G_M48529_IG31
- mov edx, r15d
- and edx, 0xD1FFAB1E
- mov r8d, r15d
- and r8d, 0xD1FFAB1E
- or edx, r8d
+ test r15d, 0xD1FFAB1E
jne SHORT G_M48529_IG32
- ;; size=72 bbWeight=0.50 PerfScore 3.38
+ ;; size=57 bbWeight=0.50 PerfScore 2.88
G_M48529_IG31: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
test al, 16
je SHORT G_M48529_IG36
@@ -824,7 +820,7 @@ G_M48529_IG56: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1800, prolog size 26, PerfScore 235.19, instruction count 453, allocated bytes for code 1800 (MethodHash=7d21426e) for method System.Uri:ParseRemaining():this (FullOpts)
+; Total bytes of code 1785, prolog size 26, PerfScore 234.69, instruction count 449, allocated bytes for code 1785 (MethodHash=7d21426e) for method System.Uri:ParseRemaining():this (FullOpts)
; ============================================================
Unwind Info:-20 (-0.62%) : 341611.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateMethods(System.RuntimeType+RuntimeTypeCache+Filter):System.Reflection.RuntimeMethodInfo[]:this (Tier1)
@@ -27,7 +27,7 @@
;* V15 loc13 [V15 ] ( 0, 0 ) int -> zero-ref
; V16 loc14 [V16,T45] ( 2, 2.27) int -> r12
; V17 loc15 [V17,T03] ( 10, 70.81) long -> [rbp+0x90] ld-addr-op
-; V18 loc16 [V18,T18] ( 11, 7.92) int -> [rbp+0x8C]
+; V18 loc16 [V18,T18] ( 10, 7.82) int -> [rbp+0x8C]
; V19 loc17 [V19,T39] ( 3, 2.93) int -> [rbp+0x88]
; V20 loc18 [V20,T49] ( 4, 2.03) ubyte -> r10
; V21 loc19 [V21,T60] ( 5, 1.38) int -> [rbp+0x84] ptr
@@ -699,15 +699,9 @@ G_M27271_IG56: ; bbWeight=0.13, gcrefRegs=00C0 {rsi rdi}, byrefRegs=4008
jmp G_M27271_IG19
;; size=28 bbWeight=0.13 PerfScore 0.66
G_M27271_IG57: ; bbWeight=0.10, gcrefRegs=00C0 {rsi rdi}, byrefRegs=4008 {rbx r14}, byref
- mov eax, dword ptr [rbp+0x8C]
- mov ecx, eax
- and ecx, 0x400
- mov dword ptr [rbp+0x8C], eax
- mov r10d, eax
- and r10d, 64
- or ecx, r10d
+ test dword ptr [rbp+0x8C], 0x440
je G_M27271_IG106
- ;; size=36 bbWeight=0.10 PerfScore 0.44
+ ;; size=16 bbWeight=0.10 PerfScore 0.21
G_M27271_IG58: ; bbWeight=0.10, gcrefRegs=00C0 {rsi rdi}, byrefRegs=4008 {rbx r14}, byref
cmp r9d, r15d
jae G_M27271_IG122
@@ -1386,7 +1380,7 @@ G_M27271_IG122: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 3209, prolog size 62, PerfScore 1414.93, instruction count 686, allocated bytes for code 3219 (MethodHash=20c79578) for method System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateMethods(System.RuntimeType+RuntimeTypeCache+Filter):System.Reflection.RuntimeMethodInfo[]:this (Tier1)
+; Total bytes of code 3189, prolog size 62, PerfScore 1414.70, instruction count 680, allocated bytes for code 3199 (MethodHash=20c79578) for method System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateMethods(System.RuntimeType+RuntimeTypeCache+Filter):System.Reflection.RuntimeMethodInfo[]:this (Tier1)
; ============================================================
Unwind Info:-6 (-0.45%) : 543502.dasm - GitHub_9692.C:TestEntryPoint():int (FullOpts)
@@ -35,8 +35,8 @@
;* V24 tmp17 [V24 ] ( 0, 0 ) ref -> zero-ref single-def
; V25 tmp18 [V25,T29] ( 3, 6 ) ref -> rax class-hnd exact single-def "NewObj constructor temp" <GitHub_9692.C+Box>
; V26 tmp19 [V26,T07] ( 6, 34 ) int -> rdx "Inline stloc first use temp"
-; V27 tmp20 [V27,T01] ( 6, 82 ) int -> rax "Inlining Arg"
-; V28 tmp21 [V28,T02] ( 6, 82 ) int -> registers "Inlining Arg"
+; V27 tmp20 [V27,T03] ( 5, 66 ) int -> rax "Inlining Arg"
+; V28 tmp21 [V28,T01] ( 6, 82 ) int -> registers "Inlining Arg"
; V29 tmp22 [V29,T05] ( 3, 48 ) int -> rcx "dup spill"
; V30 tmp23 [V30,T09] ( 2, 32 ) int -> r8 "dup spill"
;* V31 tmp24 [V31 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
@@ -46,7 +46,7 @@
; V35 tmp28 [V35,T12] ( 2, 16 ) int -> rsi "dup spill"
;* V36 tmp29 [V36 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V37 tmp30 [V37,T00] ( 8,450 ) int -> rbx "Inlining Arg"
-; V38 tmp31 [V38,T03] ( 3, 80 ) int -> rcx
+; V38 tmp31 [V38,T02] ( 3, 80 ) int -> rcx
;* V39 tmp32 [V39 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V40 tmp33 [V40,T04] ( 6, 58 ) int -> rbx "Inlining Arg"
; V41 tmp34 [V41,T13] ( 3, 12 ) int -> rbx
@@ -277,11 +277,9 @@ G_M4053_IG10: ; bbWeight=4, gcrefRegs=B0A0 {rbp rdi r12 r13 r15}, byrefRe
mov ecx, r8d
;; size=3 bbWeight=4 PerfScore 1.00
G_M4053_IG11: ; bbWeight=8, gcrefRegs=B0A0 {rbp rdi r12 r13 r15}, byrefRegs=0000 {}, byref, isz
- lea r8d, [rax+4*rax]
- add edx, r8d
- mov r8d, eax
+ lea r8d, [rax+0x05]
imul r8d, eax
- lea edx, [rdx+r8+0x19]
+ lea edx, [r8+rdx+0x19]
dec ecx
mov r8d, ecx
mov r10d, r8d
@@ -295,7 +293,7 @@ G_M4053_IG11: ; bbWeight=8, gcrefRegs=B0A0 {rbp rdi r12 r13 r15}, byrefRe
test r8d, r8d
mov ecx, r8d
jne SHORT G_M4053_IG11
- ;; size=55 bbWeight=8 PerfScore 70.00
+ ;; size=49 bbWeight=8 PerfScore 66.00
G_M4053_IG12: ; bbWeight=1, gcrefRegs=B0A0 {rbp rdi r12 r13 r15}, byrefRegs=0000 {}, byref, isz
lea ecx, [r14+0x01]
cmp edx, 0x479
@@ -641,7 +639,7 @@ G_M4053_IG57: ; bbWeight=1, epilog, nogc, extend
ret
;; size=17 bbWeight=1 PerfScore 5.25
-; Total bytes of code 1319, prolog size 16, PerfScore 604.75, instruction count 339, allocated bytes for code 1319 (MethodHash=c37ff02a) for method GitHub_9692.C:TestEntryPoint():int (FullOpts)
+; Total bytes of code 1313, prolog size 16, PerfScore 600.75, instruction count 337, allocated bytes for code 1313 (MethodHash=c37ff02a) for method GitHub_9692.C:TestEntryPoint():int (FullOpts)
; ============================================================
Unwind Info:-2 (-0.40%) : 375172.dasm - testout1:Func_0_1_2_2_1(testout1+VT_0_1_2_2_1):double (FullOpts)
@@ -12,7 +12,7 @@
;* V01 loc0 [V01 ] ( 0, 0 ) double -> zero-ref single-def
; V02 OutArgs [V02 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <UNNAMED>
; V03 tmp1 [V03,T05] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
-; V04 tmp2 [V04,T23] ( 3, 6 ) double -> mm6 "Inlining Arg"
+; V04 tmp2 [V04,T22] ( 3, 6 ) double -> mm6 "Inlining Arg"
;* V05 tmp3 [V05 ] ( 0, 0 ) long -> zero-ref "field V00.a0_0_1_2_2_1 (fldOffset=0x0)" P-INDEP
;* V06 tmp4 [V06 ] ( 0, 0 ) double -> zero-ref "field V00.a1_0_1_2_2_1 (fldOffset=0x8)" P-INDEP
;* V07 tmp5 [V07 ] ( 0, 0 ) double -> zero-ref "field V00.a4_0_1_2_2_1 (fldOffset=0x10)" P-INDEP
@@ -24,22 +24,21 @@
; V13 tmp11 [V13,T01] ( 6, 12 ) ref -> rcx single-def "MD array shared temp"
; V14 tmp12 [V14,T08] ( 3, 6 ) int -> rax "MD array shared temp"
; V15 tmp13 [V15,T09] ( 3, 6 ) int -> r8 "MD array shared temp"
-; V16 cse0 [V16,T13] ( 3, 3 ) int -> rdx "CSE #07: aggressive"
-; V17 cse1 [V17,T14] ( 3, 3 ) int -> r10 "CSE #14: aggressive"
-; V18 cse2 [V18,T24] ( 3, 3 ) double -> mm1 "CSE #12: aggressive"
-; V19 cse3 [V19,T10] ( 5, 5 ) int -> rdx "CSE #11: aggressive"
-; V20 cse4 [V20,T11] ( 4, 4 ) int -> rax "CSE #13: aggressive"
-; V21 cse5 [V21,T12] ( 4, 4 ) int -> r9 "CSE #04: aggressive"
-; V22 cse6 [V22,T15] ( 3, 3 ) int -> rdx "CSE #02: aggressive"
-; V23 cse7 [V23,T16] ( 3, 3 ) int -> r8 "CSE #08: aggressive"
-; V24 cse8 [V24,T17] ( 3, 3 ) int -> rbx "CSE #10: aggressive"
-; V25 cse9 [V25,T18] ( 3, 3 ) long -> r10 "CSE #16: aggressive"
-; V26 cse10 [V26,T03] ( 6, 6 ) long -> r10 "CSE #03: aggressive"
-; V27 cse11 [V27,T04] ( 6, 6 ) long -> rax "CSE #01: aggressive"
-; V28 cse12 [V28,T19] ( 3, 3 ) long -> r11 "CSE #15: aggressive"
-; V29 cse13 [V29,T20] ( 3, 3 ) int -> rbx "CSE #09: aggressive"
-; V30 cse14 [V30,T21] ( 3, 3 ) long -> r8 "CSE #17: aggressive"
-; V31 cse15 [V31,T22] ( 3, 3 ) int -> rdx "CSE #18: aggressive"
+; V16 cse0 [V16,T23] ( 3, 3 ) double -> mm1 "CSE #10: aggressive"
+; V17 cse1 [V17,T10] ( 5, 5 ) int -> rdx "CSE #09: aggressive"
+; V18 cse2 [V18,T11] ( 5, 5 ) int -> rax "CSE #11: aggressive"
+; V19 cse3 [V19,T12] ( 4, 4 ) int -> r9 "CSE #04: aggressive"
+; V20 cse4 [V20,T13] ( 3, 3 ) int -> rdx "CSE #02: aggressive"
+; V21 cse5 [V21,T14] ( 3, 3 ) int -> rdx "CSE #05: aggressive"
+; V22 cse6 [V22,T15] ( 3, 3 ) int -> r8 "CSE #06: aggressive"
+; V23 cse7 [V23,T16] ( 3, 3 ) int -> rbx "CSE #08: aggressive"
+; V24 cse8 [V24,T17] ( 3, 3 ) long -> r10 "CSE #13: aggressive"
+; V25 cse9 [V25,T03] ( 6, 6 ) long -> r10 "CSE #03: aggressive"
+; V26 cse10 [V26,T04] ( 6, 6 ) long -> rax "CSE #01: aggressive"
+; V27 cse11 [V27,T18] ( 3, 3 ) long -> r11 "CSE #12: aggressive"
+; V28 cse12 [V28,T19] ( 3, 3 ) int -> rbx "CSE #07: aggressive"
+; V29 cse13 [V29,T20] ( 3, 3 ) long -> r8 "CSE #14: aggressive"
+; V30 cse14 [V30,T21] ( 3, 3 ) int -> rdx "CSE #15: aggressive"
;
; Lcl frame size = 56
@@ -67,9 +66,9 @@ G_M16217_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byr
vcvtsi2sd xmm0, xmm0, edx
mov rdx, 0xD1FFAB1E
vmovsd qword ptr [rdx], xmm0
- mov edx, dword ptr [r10]
- imul edx, dword ptr [rax]
+ mov edx, dword ptr [rax]
add edx, edx
+ imul edx, dword ptr [r10]
vxorps xmm0, xmm0, xmm0
vcvtsi2sd xmm0, xmm0, edx
mov rdx, 0xD1FFAB1E
@@ -116,9 +115,8 @@ G_M16217_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byr
;; size=262 bbWeight=1 PerfScore 84.33
G_M16217_IG03: ; bbWeight=1, isz, extend
vaddsd xmm1, xmm1, xmm2
- mov r10d, edx
- imul r10d, eax
- add r10d, r10d
+ lea r10d, [rax+rax]
+ imul r10d, edx
vxorps xmm2, xmm2, xmm2
vcvtsi2sd xmm2, xmm2, r10d
vmovsd xmm3, qword ptr [reloc @RWD00]
@@ -172,7 +170,7 @@ G_M16217_IG03: ; bbWeight=1, isz, extend
; gcrRegs -[rax rcx rdx]
; gcr arg pop 0
vmovaps xmm0, xmm6
- ;; size=201 bbWeight=1 PerfScore 156.75
+ ;; size=199 bbWeight=1 PerfScore 156.75
G_M16217_IG04: ; bbWeight=1, epilog, nogc, extend
vmovaps xmm6, xmmword ptr [rsp+0x20]
add rsp, 56
@@ -188,7 +186,7 @@ G_M16217_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
RWD00 dq 4034000000000000h ; 20
-; Total bytes of code 494, prolog size 12, PerfScore 248.58, instruction count 119, allocated bytes for code 494 (MethodHash=ffedc0a6) for method testout1:Func_0_1_2_2_1(testout1+VT_0_1_2_2_1):double (FullOpts)
+; Total bytes of code 492, prolog size 12, PerfScore 248.58, instruction count 118, allocated bytes for code 492 (MethodHash=ffedc0a6) for method testout1:Func_0_1_2_2_1(testout1+VT_0_1_2_2_1):double (FullOpts)
; ============================================================
Unwind Info:-20 (-0.40%) : 271088.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateMethods(System.RuntimeType+RuntimeTypeCache+Filter):System.Reflection.RuntimeMethodInfo[]:this (Tier1)
@@ -27,7 +27,7 @@
;* V15 loc13 [V15 ] ( 0, 0 ) int -> zero-ref
; V16 loc14 [V16,T64] ( 2, 3.73) int -> r12
; V17 loc15 [V17,T04] ( 10,267.16) long -> [rbp+0x130] ld-addr-op
-; V18 loc16 [V18,T01] ( 11,353.67) int -> [rbp+0x12C]
+; V18 loc16 [V18,T01] ( 10,351.94) int -> [rbp+0x12C]
; V19 loc17 [V19,T15] ( 3,131.87) int -> [rbp+0x128]
; V20 loc18 [V20,T21] ( 4, 89.07) ubyte -> r10
; V21 loc19 [V21,T28] ( 6, 52.32) int -> [rbp+0x124] ptr
@@ -826,15 +826,9 @@ G_M27271_IG46: ; bbWeight=1.73, gcrefRegs=00C0 {rsi rdi}, byrefRegs=4008
jmp G_M27271_IG65
;; size=51 bbWeight=1.73 PerfScore 14.27
G_M27271_IG47: ; bbWeight=1.73, gcrefRegs=00C0 {rsi rdi}, byrefRegs=4008 {rbx r14}, byref
- mov eax, dword ptr [rbp+0x12C]
- mov ecx, eax
- and ecx, 0x400
- mov dword ptr [rbp+0x12C], eax
- mov r10d, eax
- and r10d, 64
- or ecx, r10d
+ test dword ptr [rbp+0x12C], 0x440
je G_M27271_IG161
- ;; size=36 bbWeight=1.73 PerfScore 7.35
+ ;; size=16 bbWeight=1.73 PerfScore 3.46
G_M27271_IG48: ; bbWeight=1.73, gcrefRegs=00C0 {rsi rdi}, byrefRegs=4008 {rbx r14}, byref
cmp r9d, r15d
jae G_M27271_IG190
@@ -2214,7 +2208,7 @@ G_M27271_IG190: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 5010, prolog size 101, PerfScore 7368.50, instruction count 1041, allocated bytes for code 5023 (MethodHash=20c79578) for method System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateMethods(System.RuntimeType+RuntimeTypeCache+Filter):System.Reflection.RuntimeMethodInfo[]:this (Tier1)
+; Total bytes of code 4990, prolog size 101, PerfScore 7364.61, instruction count 1035, allocated bytes for code 5003 (MethodHash=20c79578) for method System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateMethods(System.RuntimeType+RuntimeTypeCache+Filter):System.Reflection.RuntimeMethodInfo[]:this (Tier1)
; ============================================================
Unwind Info:-8 (-2.29%) : 345062.dasm - System.RuntimeType:GetBaseType():System.RuntimeType:this (Tier1)
@@ -14,7 +14,7 @@
; V02 loc1 [V02,T11] ( 5, 0 ) ref -> rdi class-hnd <System.RuntimeType>
;* V03 loc2 [V03,T16] ( 0, 0 ) int -> zero-ref
; V04 loc3 [V04,T12] ( 5, 0 ) ref -> r14 class-hnd exact <System.RuntimeType>
-; V05 loc4 [V05,T15] ( 3, 0 ) int -> rax
+; V05 loc4 [V05,T15] ( 2, 0 ) int -> rax
; V06 OutArgs [V06 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <UNNAMED>
;* V07 tmp1 [V07 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V08 tmp2 [V08,T06] ( 3, 2 ) int -> rcx
@@ -172,12 +172,9 @@ G_M56028_IG12: ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000
call [System.RuntimeType:get_GenericParameterAttributes():int:this]
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M56028_IG14
- ;; size=71 bbWeight=0 PerfScore 0.00
+ ;; size=63 bbWeight=0 PerfScore 0.00
G_M56028_IG13: ; bbWeight=0, gcrefRegs=4048 {rbx rsi r14}, byrefRegs=0000 {}, byref
; gcrRegs -[rdi]
mov rdi, r14
@@ -233,7 +230,7 @@ G_M56028_IG18: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {
jmp G_M56028_IG05
;; size=11 bbWeight=0 PerfScore 0.00
-; Total bytes of code 349, prolog size 10, PerfScore 29.88, instruction count 107, allocated bytes for code 349 (MethodHash=370d2523) for method System.RuntimeType:GetBaseType():System.RuntimeType:this (Tier1)
+; Total bytes of code 341, prolog size 10, PerfScore 29.88, instruction count 104, allocated bytes for code 341 (MethodHash=370d2523) for method System.RuntimeType:GetBaseType():System.RuntimeType:this (Tier1)
; ============================================================
Unwind Info:libraries.crossgen2.windows.x64.checked.mch
-3 (-18.75%) : 280456.dasm - Xunit.Sdk.Sha1Digest:G(uint,uint,uint):uint (FullOpts)
@@ -8,9 +8,9 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 4, 4 ) int -> rcx single-def
-; V01 arg1 [V01,T01] ( 4, 4 ) int -> rdx single-def
-; V02 arg2 [V02,T02] ( 4, 4 ) int -> r8 single-def
+; V00 arg0 [V00,T02] ( 3, 3 ) int -> rcx single-def
+; V01 arg1 [V01,T00] ( 4, 4 ) int -> rdx single-def
+; V02 arg2 [V02,T01] ( 4, 4 ) int -> r8 single-def
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
;
; Lcl frame size = 0
@@ -18,18 +18,17 @@
G_M45053_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
;; size=0 bbWeight=1 PerfScore 0.00
G_M45053_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov eax, ecx
- and eax, edx
- and ecx, r8d
+ mov eax, edx
+ and eax, r8d
+ or edx, r8d
+ and ecx, edx
or eax, ecx
- and r8d, edx
- or eax, r8d
- ;; size=15 bbWeight=1 PerfScore 1.50
+ ;; size=12 bbWeight=1 PerfScore 1.25
G_M45053_IG03: ; bbWeight=1, epilog, nogc, extend
ret
;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 16, prolog size 0, PerfScore 2.50, instruction count 7, allocated bytes for code 16 (MethodHash=10e45002) for method Xunit.Sdk.Sha1Digest:G(uint,uint,uint):uint (FullOpts)
+; Total bytes of code 13, prolog size 0, PerfScore 2.25, instruction count 6, allocated bytes for code 13 (MethodHash=10e45002) for method Xunit.Sdk.Sha1Digest:G(uint,uint,uint):uint (FullOpts)
; ============================================================
Unwind Info:-20 (-16.81%) : 115243.dasm - Microsoft.CodeAnalysis.VisualBasic.Conversions:Classify_Reference_Array_TypeParameterConversion(Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,int,byref):int (FullOpts)
@@ -9,11 +9,11 @@
; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T01] ( 5, 4 ) ref -> rbx class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol>
-; V01 arg1 [V01,T02] ( 5, 4 ) ref -> rsi class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol>
-; V02 arg2 [V02,T04] ( 5, 4 ) int -> rbp single-def
-; V03 arg3 [V03,T03] ( 5, 4 ) byref -> rdi single-def
-; V04 loc0 [V04,T00] ( 8, 6 ) int -> rax
+; V00 arg0 [V00,T00] ( 5, 4 ) ref -> rbx class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol>
+; V01 arg1 [V01,T01] ( 5, 4 ) ref -> rsi class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol>
+; V02 arg2 [V02,T03] ( 5, 4 ) int -> rbp single-def
+; V03 arg3 [V03,T02] ( 5, 4 ) byref -> rdi single-def
+; V04 loc0 [V04,T04] ( 6, 4.50) int -> rax
; V05 OutArgs [V05 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <UNNAMED>
;
; Lcl frame size = 40
@@ -44,13 +44,9 @@ G_M15585_IG02: ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0080 {rd
; gcrRegs -[rcx rdx]
; byrRegs -[r9]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 3
- mov edx, eax
- and edx, 0xD1FFAB1E
- or ecx, edx
+ test eax, 0xD1FFAB1E
je SHORT G_M15585_IG04
- ;; size=35 bbWeight=1 PerfScore 6.25
+ ;; size=25 bbWeight=1 PerfScore 5.25
G_M15585_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
; gcrRegs -[rbx rsi]
; byrRegs -[rdi]
@@ -75,11 +71,7 @@ G_M15585_IG04: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=004
; gcrRegs -[rcx rdx]
; byrRegs -[r9]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 3
- mov edx, eax
- and edx, 0xD1FFAB1E
- or ecx, edx
+ test eax, 0xD1FFAB1E
jne SHORT G_M15585_IG03
mov rcx, rbx
; gcrRegs +[rcx]
@@ -93,9 +85,9 @@ G_M15585_IG04: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=004
; byrRegs -[rdi r9]
; gcr arg pop 0
jmp SHORT G_M15585_IG03
- ;; size=55 bbWeight=0.50 PerfScore 6.12
+ ;; size=45 bbWeight=0.50 PerfScore 5.62
-; Total bytes of code 119, prolog size 8, PerfScore 20.88, instruction count 43, allocated bytes for code 119 (MethodHash=0982c31e) for method Microsoft.CodeAnalysis.VisualBasic.Conversions:Classify_Reference_Array_TypeParameterConversion(Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,int,byref):int (FullOpts)
+; Total bytes of code 99, prolog size 8, PerfScore 19.38, instruction count 35, allocated bytes for code 99 (MethodHash=0982c31e) for method Microsoft.CodeAnalysis.VisualBasic.Conversions:Classify_Reference_Array_TypeParameterConversion(Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,int,byref):int (FullOpts)
; ============================================================
Unwind Info:-14 (-10.00%) : 228172.dasm - System.Speech.Recognition.RecognizerBase:ConvertCompareOptions(int):int (FullOpts)
@@ -8,7 +8,7 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T01] ( 7, 7 ) int -> rcx single-def
+; V00 arg0 [V00,T01] ( 6, 6 ) int -> rcx single-def
;* V01 loc0 [V01 ] ( 0, 0 ) int -> zero-ref single-def
; V02 loc1 [V02,T00] ( 10, 10 ) int -> rax
; V03 OutArgs [V03 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <UNNAMED>
@@ -25,13 +25,9 @@ G_M61916_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=6 bbWeight=1 PerfScore 2.25
G_M61916_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
xor eax, eax
- mov edx, ecx
- and edx, 1
- mov r8d, ecx
- and r8d, 0xD1FFAB1E
- mov r10d, 1
- or edx, r8d
- cmovne eax, r10d
+ mov edx, 1
+ test ecx, 0xD1FFAB1E
+ cmovne eax, edx
mov edx, eax
or edx, 0x10000
test cl, 8
@@ -42,7 +38,7 @@ G_M61916_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
cmovne eax, edx
test ecx, 0xD1FFAB1E
jne SHORT G_M61916_IG04
- ;; size=66 bbWeight=1 PerfScore 6.00
+ ;; size=52 bbWeight=1 PerfScore 5.00
G_M61916_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 40
pop rbx
@@ -81,7 +77,7 @@ G_M61916_IG04: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
int3
;; size=61 bbWeight=0 PerfScore 0.00
-; Total bytes of code 140, prolog size 6, PerfScore 10.50, instruction count 39, allocated bytes for code 140 (MethodHash=85610e23) for method System.Speech.Recognition.RecognizerBase:ConvertCompareOptions(int):int (FullOpts)
+; Total bytes of code 126, prolog size 6, PerfScore 9.50, instruction count 35, allocated bytes for code 126 (MethodHash=85610e23) for method System.Speech.Recognition.RecognizerBase:ConvertCompareOptions(int):int (FullOpts)
; ============================================================
Unwind Info:-10 (-6.17%) : 115217.dasm - Microsoft.CodeAnalysis.VisualBasic.Conversions:ClassifyDirectCastConversion(Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Binder,byref):int (FullOpts)
@@ -14,7 +14,7 @@
; V02 arg2 [V02,T03] ( 3, 2.50) ref -> rbp class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Binder>
; V03 arg3 [V03,T02] ( 4, 3 ) byref -> rdi single-def
; V04 loc0 [V04,T05] ( 4, 2.50) int -> rax
-; V05 loc1 [V05,T04] ( 6, 3 ) int -> rax
+; V05 loc1 [V05,T04] ( 5, 2.50) int -> rax
; V06 loc2 [V06,T06] ( 4, 2 ) ref -> rbx class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol>
; V07 OutArgs [V07 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <UNNAMED>
;
@@ -71,13 +71,9 @@ G_M15230_IG04: ; bbWeight=0.50, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0
; gcrRegs -[rcx rdx rbp r8]
; byrRegs -[r9]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 3
- mov edx, eax
- and edx, 0xD1FFAB1E
- or ecx, edx
+ test eax, 0xD1FFAB1E
je SHORT G_M15230_IG06
- ;; size=35 bbWeight=0.50 PerfScore 3.12
+ ;; size=25 bbWeight=0.50 PerfScore 2.62
G_M15230_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rbx rsi]
; byrRegs -[rdi]
@@ -137,7 +133,7 @@ G_M15230_IG10: ; bbWeight=1, epilog, nogc, extend
ret
;; size=9 bbWeight=1 PerfScore 3.25
-; Total bytes of code 162, prolog size 8, PerfScore 31.62, instruction count 57, allocated bytes for code 162 (MethodHash=990ac481) for method Microsoft.CodeAnalysis.VisualBasic.Conversions:ClassifyDirectCastConversion(Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Binder,byref):int (FullOpts)
+; Total bytes of code 152, prolog size 8, PerfScore 31.12, instruction count 53, allocated bytes for code 152 (MethodHash=990ac481) for method Microsoft.CodeAnalysis.VisualBasic.Conversions:ClassifyDirectCastConversion(Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Binder,byref):int (FullOpts)
; ============================================================
Unwind Info:-10 (-6.17%) : 115219.dasm - Microsoft.CodeAnalysis.VisualBasic.Conversions:ClassifyTryCastConversion(Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Binder,byref):int (FullOpts)
@@ -14,7 +14,7 @@
; V02 arg2 [V02,T03] ( 3, 2.50) ref -> rbp class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Binder>
; V03 arg3 [V03,T02] ( 4, 3 ) byref -> rdi single-def
; V04 loc0 [V04,T05] ( 4, 2.50) int -> rax
-; V05 loc1 [V05,T04] ( 6, 3 ) int -> rax
+; V05 loc1 [V05,T04] ( 5, 2.50) int -> rax
; V06 loc2 [V06,T06] ( 4, 2 ) ref -> rbx class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol>
; V07 OutArgs [V07 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <UNNAMED>
;
@@ -71,13 +71,9 @@ G_M14604_IG04: ; bbWeight=0.50, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0
; gcrRegs -[rcx rdx rbp r8]
; byrRegs -[r9]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 3
- mov edx, eax
- and edx, 0xD1FFAB1E
- or ecx, edx
+ test eax, 0xD1FFAB1E
je SHORT G_M14604_IG06
- ;; size=35 bbWeight=0.50 PerfScore 3.12
+ ;; size=25 bbWeight=0.50 PerfScore 2.62
G_M14604_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rbx rsi]
; byrRegs -[rdi]
@@ -137,7 +133,7 @@ G_M14604_IG10: ; bbWeight=1, epilog, nogc, extend
ret
;; size=9 bbWeight=1 PerfScore 3.25
-; Total bytes of code 162, prolog size 8, PerfScore 31.62, instruction count 57, allocated bytes for code 162 (MethodHash=9bbec6f3) for method Microsoft.CodeAnalysis.VisualBasic.Conversions:ClassifyTryCastConversion(Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Binder,byref):int (FullOpts)
+; Total bytes of code 152, prolog size 8, PerfScore 31.12, instruction count 53, allocated bytes for code 152 (MethodHash=9bbec6f3) for method Microsoft.CodeAnalysis.VisualBasic.Conversions:ClassifyTryCastConversion(Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Binder,byref):int (FullOpts)
; ============================================================
Unwind Info:-8 (-3.40%) : 17786.dasm - System.RuntimeType:GetBaseType():System.RuntimeType:this (FullOpts)
@@ -11,10 +11,10 @@
;
; V00 this [V00,T03] ( 7, 5 ) ref -> rbx this class-hnd single-def <System.RuntimeType>
; V01 loc0 [V01,T07] ( 3, 1.50) ref -> rsi class-hnd single-def <System.Type[]>
-; V02 loc1 [V02,T05] ( 6, 4.50) ref -> rbp class-hnd <System.RuntimeType>
+; V02 loc1 [V02,T04] ( 6, 4.50) ref -> rbp class-hnd <System.RuntimeType>
;* V03 loc2 [V03,T09] ( 0, 0 ) int -> zero-ref
; V04 loc3 [V04,T00] ( 5, 14 ) ref -> r15 class-hnd <System.RuntimeType>
-; V05 loc4 [V05,T04] ( 3, 6 ) int -> rax
+; V05 loc4 [V05,T05] ( 2, 4 ) int -> rax
; V06 OutArgs [V06 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <UNNAMED>
; V07 cse0 [V07,T06] ( 4, 2 ) byref -> rdi "CSE #02: aggressive"
; V08 cse1 [V08,T08] ( 3, 1.50) int -> r14 "CSE #01: aggressive"
@@ -121,12 +121,9 @@ G_M56028_IG07: ; bbWeight=2, gcrefRegs=8028 {rbx rbp r15}, byrefRegs=00C0
call [System.RuntimeType:get_GenericParameterAttributes():int:this]
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M56028_IG09
- ;; size=34 bbWeight=2 PerfScore 19.50
+ ;; size=26 bbWeight=2 PerfScore 18.00
G_M56028_IG08: ; bbWeight=2, gcrefRegs=8008 {rbx r15}, byrefRegs=00C0 {rsi rdi}, byref
; gcrRegs -[rbp]
mov rbp, r15
@@ -181,7 +178,7 @@ G_M56028_IG14: ; bbWeight=0.50, epilog, nogc, extend
ret
;; size=13 bbWeight=0.50 PerfScore 2.12
-; Total bytes of code 235, prolog size 12, PerfScore 105.12, instruction count 84, allocated bytes for code 235 (MethodHash=370d2523) for method System.RuntimeType:GetBaseType():System.RuntimeType:this (FullOpts)
+; Total bytes of code 227, prolog size 12, PerfScore 103.62, instruction count 81, allocated bytes for code 227 (MethodHash=370d2523) for method System.RuntimeType:GetBaseType():System.RuntimeType:this (FullOpts)
; ============================================================
Unwind Info:-8 (-3.24%) : 165559.dasm - Microsoft.CodeAnalysis.MetadataDecoder`5[System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon]:DecodeLocalVariableTypeOrThrow(System.Collections.Immutable.ImmutableArray`1[byte]):System.__Canon:this (FullOpts)
@@ -20,7 +20,7 @@
; V08 tmp1 [V08,T05] ( 3, 0 ) ref -> rsi class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.UnsupportedSignatureContent>
; V09 tmp2 [V09,T06] ( 3, 0 ) ref -> rsi class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.UnsupportedSignatureContent>
; V10 tmp3 [V10 ] ( 6, 6 ) ref -> [rsp+0xA8] do-not-enreg[X] addr-exposed single-def "field V01.array (fldOffset=0x0)" P-DEP
-; V11 tmp4 [V11,T04] ( 3, 3 ) ubyte -> rax single-def "V06.[016..017)"
+; V11 tmp4 [V11,T04] ( 2, 2 ) ubyte -> rax single-def "V06.[016..017)"
; V12 tmp5 [V12,T01] ( 2, 4 ) long -> rdx "Cast away GC"
; V13 tmp6 [V13,T02] ( 2, 4 ) long -> rdx "argument with side effect"
;
@@ -75,14 +75,11 @@ G_M41458_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
; gcr arg pop 0
cmp dword ptr [rbx], ebx
movzx rax, byte ptr [rsp+0x38]
- mov ecx, eax
- and ecx, 1
- and eax, 2
- or eax, ecx
+ test al, 3
jne SHORT G_M41458_IG05
mov rax, gword ptr [rsp+0x30]
; gcrRegs +[rax]
- ;; size=124 bbWeight=1 PerfScore 31.00
+ ;; size=116 bbWeight=1 PerfScore 30.25
G_M41458_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 136
pop rbx
@@ -127,7 +124,7 @@ G_M41458_IG05: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
int3
;; size=28 bbWeight=0 PerfScore 0.00
-; Total bytes of code 247, prolog size 46, PerfScore 42.33, instruction count 57, allocated bytes for code 247 (MethodHash=74a85e0d) for method Microsoft.CodeAnalysis.MetadataDecoder`5[System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon]:DecodeLocalVariableTypeOrThrow(System.Collections.Immutable.ImmutableArray`1[byte]):System.__Canon:this (FullOpts)
+; Total bytes of code 239, prolog size 46, PerfScore 41.58, instruction count 54, allocated bytes for code 239 (MethodHash=74a85e0d) for method Microsoft.CodeAnalysis.MetadataDecoder`5[System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon]:DecodeLocalVariableTypeOrThrow(System.Collections.Immutable.ImmutableArray`1[byte]):System.__Canon:this (FullOpts)
; ============================================================
Unwind Info:-9 (-2.65%) : 213467.dasm - System.Xml.Schema.XmlSchemaValidator:.ctor(System.Xml.XmlNameTable,System.Xml.Schema.XmlSchemaSet,System.Xml.IXmlNamespaceResolver,int):this (FullOpts)
@@ -13,15 +13,15 @@
; V01 arg1 [V01,T02] ( 5, 4.50) ref -> rdi class-hnd single-def <System.Xml.XmlNameTable>
; V02 arg2 [V02,T01] ( 8, 5.50) ref -> rsi class-hnd single-def <System.Xml.Schema.XmlSchemaSet>
; V03 arg3 [V03,T03] ( 4, 4 ) ref -> rbp class-hnd single-def <System.Xml.IXmlNamespaceResolver>
-; V04 arg4 [V04,T06] ( 3, 3 ) int -> r14 single-def
+; V04 arg4 [V04,T08] ( 2, 2 ) int -> r14 single-def
; V05 OutArgs [V05 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <UNNAMED>
; V06 tmp1 [V06,T04] ( 3, 3 ) ref -> rbp class-hnd exact single-def "NewObj constructor temp" <System.Xml.Schema.XmlSchemaSet>
;* V07 tmp2 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Xml.Schema.XmlSchemaSet>
;* V08 tmp3 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Xml.Schema.XmlSchemaSet>
-; V09 tmp4 [V09,T07] ( 2, 2 ) ref -> rdi class-hnd single-def "impAppendStmt" <System.Xml.Schema.XmlSchemaSet>
+; V09 tmp4 [V09,T06] ( 2, 2 ) ref -> rdi class-hnd single-def "impAppendStmt" <System.Xml.Schema.XmlSchemaSet>
; V10 tmp5 [V10,T05] ( 3, 3 ) ref -> rsi class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
;* V11 tmp6 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Xml.Schema.XmlSchemaCompilationSettings>
-; V12 tmp7 [V12,T08] ( 2, 2 ) ref -> rdx class-hnd single-def "Inlining Arg" <System.Xml.XmlResolver>
+; V12 tmp7 [V12,T07] ( 2, 2 ) ref -> rdx class-hnd single-def "Inlining Arg" <System.Xml.XmlResolver>
; V13 cse0 [V13,T09] ( 3, 1.50) ref -> rdi "CSE #01: aggressive"
;
; Lcl frame size = 32
@@ -85,12 +85,9 @@ G_M31695_IG02: ; bbWeight=1, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=
; gcrRegs -[rdx rbp]
; byrRegs -[rcx]
mov dword ptr [rbx+0xF0], r14d
- mov ecx, r14d
- and ecx, 1
- and r14d, 2
- or ecx, r14d
+ test r14b, 3
jne SHORT G_M31695_IG04
- ;; size=131 bbWeight=1 PerfScore 34.25
+ ;; size=122 bbWeight=1 PerfScore 33.50
G_M31695_IG03: ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rdi]
lea rcx, bword ptr [rbx+0x08]
@@ -195,7 +192,7 @@ G_M31695_IG06: ; bbWeight=1, epilog, nogc, extend
tail.jmp [rax]<unknown method>
;; size=13 bbWeight=1 PerfScore 4.75
-; Total bytes of code 340, prolog size 10, PerfScore 79.25, instruction count 84, allocated bytes for code 340 (MethodHash=d5398430) for method System.Xml.Schema.XmlSchemaValidator:.ctor(System.Xml.XmlNameTable,System.Xml.Schema.XmlSchemaSet,System.Xml.IXmlNamespaceResolver,int):this (FullOpts)
+; Total bytes of code 331, prolog size 10, PerfScore 78.50, instruction count 81, allocated bytes for code 331 (MethodHash=d5398430) for method System.Xml.Schema.XmlSchemaValidator:.ctor(System.Xml.XmlNameTable,System.Xml.Schema.XmlSchemaSet,System.Xml.IXmlNamespaceResolver,int):this (FullOpts)
; ============================================================
Unwind Info:-18 (-2.50%) : 229073.dasm - System.Speech.Internal.SrgsCompiler.Backend:CreateRule(System.String,int):System.Speech.Internal.SrgsCompiler.Rule:this (FullOpts)
@@ -11,7 +11,7 @@
;
; V00 this [V00,T00] ( 16, 17 ) ref -> rbx this class-hnd single-def <System.Speech.Internal.SrgsCompiler.Backend>
; V01 arg1 [V01,T04] ( 10, 9 ) ref -> rdi class-hnd single-def <System.String>
-; V02 arg2 [V02,T02] ( 16, 11.50) int -> rsi
+; V02 arg2 [V02,T02] ( 14, 10.50) int -> rsi
;* V03 loc0 [V03 ] ( 0, 0 ) int -> zero-ref single-def
; V04 loc1 [V04 ] ( 1, 1 ) int -> [rbp-0x30] do-not-enreg[X] must-init addr-exposed ld-addr-op
; V05 loc2 [V05 ] ( 2, 2 ) int -> [rbp-0x38] do-not-enreg[X] must-init addr-exposed ld-addr-op
@@ -79,17 +79,10 @@ G_M53126_IG04: ; bbWeight=1, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {},
;; size=6 bbWeight=1 PerfScore 1.25
G_M53126_IG05: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
mov ecx, esi
- and ecx, 1
- mov edx, esi
- and edx, 2
- or ecx, edx
- mov edx, esi
- and edx, 64
- mov r11d, esi
- and r11d, -68
- or ecx, edx
- cmovne esi, r11d
- ;; size=30 bbWeight=0.50 PerfScore 1.50
+ and ecx, -68
+ test sil, 67
+ cmovne esi, ecx
+ ;; size=12 bbWeight=0.50 PerfScore 0.62
G_M53126_IG06: ; bbWeight=1, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
test sil, 8
je SHORT G_M53126_IG08
@@ -377,7 +370,7 @@ G_M53126_IG27: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=5 bbWeight=0 PerfScore 0.00
-; Total bytes of code 720, prolog size 47, PerfScore 212.96, instruction count 193, allocated bytes for code 720 (MethodHash=7b3d3079) for method System.Speech.Internal.SrgsCompiler.Backend:CreateRule(System.String,int):System.Speech.Internal.SrgsCompiler.Rule:this (FullOpts)
+; Total bytes of code 702, prolog size 47, PerfScore 212.08, instruction count 186, allocated bytes for code 702 (MethodHash=7b3d3079) for method System.Speech.Internal.SrgsCompiler.Backend:CreateRule(System.String,int):System.Speech.Internal.SrgsCompiler.Rule:this (FullOpts)
; ============================================================
Unwind Info:-8 (-1.81%) : 94553.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:PerformMemberOverloadResolutionStart[System.__Canon](Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon]],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,bool,byref,ushort,bool):this (FullOpts)
@@ -16,7 +16,7 @@
; V05 arg4 [V05,T14] ( 1, 4 ) ref -> [rbp+0x38] class-hnd single-def <Microsoft.CodeAnalysis.CSharp.AnalyzedArguments>
; V06 arg5 [V06,T15] ( 1, 4 ) ubyte -> [rbp+0x40] single-def
; V07 arg6 [V07,T08] ( 3, 5.50) byref -> r15 single-def
-; V08 arg7 [V08,T09] ( 3, 5 ) ushort -> r13 single-def
+; V08 arg7 [V08,T09] ( 2, 4.50) ushort -> r13 single-def
; V09 arg8 [V09,T19] ( 1, 1 ) ubyte -> [rbp+0x58] single-def
; V10 loc0 [V10 ] ( 3, 5.50) ref -> [rbp-0x48] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.Collections.Generic.Dictionary`2[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon]]>
; V11 loc1 [V11,T01] ( 5, 17 ) int -> [rbp-0x4C]
@@ -172,10 +172,7 @@ G_M55161_IG07: ; bbWeight=1, gcrefRegs=4040 {rsi r14}, byrefRegs=8000 {r1
;; size=55 bbWeight=1 PerfScore 16.25
G_M55161_IG08: ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=8000 {r15}, byref, isz
movzx rcx, r13w
- and ecx, 64
- movzx rax, r13w
- and eax, 512
- or ecx, eax
+ test ecx, 576
jne SHORT G_M55161_IG09
mov rcx, rdi
call [CORINFO_HELP_READYTORUN_GENERIC_HANDLE]
@@ -188,7 +185,7 @@ G_M55161_IG08: ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=8000 {r15
; gcrRegs -[rdx rsi]
; byrRegs -[r8 r15]
jmp SHORT G_M55161_IG10
- ;; size=46 bbWeight=0.50 PerfScore 5.62
+ ;; size=38 bbWeight=0.50 PerfScore 5.25
G_M55161_IG09: ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
; gcrRegs +[rsi]
mov rcx, rdi
@@ -215,7 +212,7 @@ G_M55161_IG11: ; bbWeight=1, epilog, nogc, extend
ret
;; size=20 bbWeight=1 PerfScore 5.25
-; Total bytes of code 442, prolog size 37, PerfScore 198.75, instruction count 124, allocated bytes for code 442 (MethodHash=bcc22886) for method Microsoft.CodeAnalysis.CSharp.OverloadResolution:PerformMemberOverloadResolutionStart[System.__Canon](Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon]],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,bool,byref,ushort,bool):this (FullOpts)
+; Total bytes of code 434, prolog size 37, PerfScore 198.38, instruction count 121, allocated bytes for code 434 (MethodHash=bcc22886) for method Microsoft.CodeAnalysis.CSharp.OverloadResolution:PerformMemberOverloadResolutionStart[System.__Canon](Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon]],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,bool,byref,ushort,bool):this (FullOpts)
; ============================================================
Unwind Info:-9 (-1.65%) : 259590.dasm - System.IO.Pipelines.PipeReader+<ReadAtLeastAsyncCore>d__4:MoveNext():this (FullOpts)
@@ -11,7 +11,7 @@
;
; V00 this [V00,T00] ( 16, 14 ) byref -> [rbp+0x10] this EH-live single-def
; V01 loc0 [V01,T05] ( 2, 2 ) int -> r8
-; V02 loc1 [V02,T04] ( 3, 3 ) ref -> rdi class-hnd single-def <System.IO.Pipelines.PipeReader>
+; V02 loc1 [V02,T03] ( 3, 3 ) ref -> rdi class-hnd single-def <System.IO.Pipelines.PipeReader>
; V03 loc2 [V03 ] ( 3, 3 ) struct (32) [rbp-0x38] do-not-enreg[XS] must-init addr-exposed <System.IO.Pipelines.ReadResult>
; V04 loc3 [V04,T02] ( 4, 4 ) struct (32) [rbp-0x58] do-not-enreg[DAS] must-init defined-via-address ld-addr-op <System.IO.Pipelines.ReadResult>
; V05 loc4 [V05 ] ( 4, 4 ) struct (24) [rbp-0x70] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Buffers.ReadOnlySequence`1[byte]>
@@ -24,7 +24,7 @@
; V12 tmp2 [V12 ] ( 2, 4 ) struct (16) [rbp-0x110] do-not-enreg[XDAS] must-init addr-exposed defined-via-address "non-inline candidate call" <System.SequencePosition>
; V13 tmp3 [V13 ] ( 2, 4 ) struct (16) [rbp-0x120] do-not-enreg[XDAS] must-init addr-exposed defined-via-address "spilled call-like call argument" <System.SequencePosition>
; V14 tmp4 [V14,T06] ( 2, 0 ) ref -> rdx class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
-; V15 tmp5 [V15,T03] ( 4, 4 ) ubyte -> rbx "V04.[000..001)"
+; V15 tmp5 [V15,T04] ( 3, 3 ) ubyte -> rbx "V04.[000..001)"
; V16 cse0 [V16,T01] ( 5, 5 ) byref -> rax multi-def "CSE #01: aggressive"
;
; Lcl frame size = 296
@@ -98,11 +98,7 @@ G_M42386_IG08: ; bbWeight=1, extend
movsxd rcx, dword ptr [rsi+0x0C]
cmp rax, rcx
jge G_M42386_IG10
- mov ecx, ebx
- and ecx, 2
- mov edx, ebx
- and edx, 1
- or ecx, edx
+ test bl, 3
jne G_M42386_IG10
lea rcx, [rbp-0x70]
lea rdx, [rbp-0x110]
@@ -121,7 +117,7 @@ G_M42386_IG08: ; bbWeight=1, extend
call [r11]<unknown method>
; gcrRegs -[rcx]
; gcr arg pop 0
- ;; size=108 bbWeight=1 PerfScore 24.75
+ ;; size=99 bbWeight=1 PerfScore 23.75
G_M42386_IG09: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0040 {rsi}, byref, isz
mov r8, gword ptr [rsi+0x38]
; gcrRegs +[r8]
@@ -229,7 +225,7 @@ G_M42386_IG17: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 545, prolog size 75, PerfScore 122.08, instruction count 124, allocated bytes for code 545 (MethodHash=6abe5a6d) for method System.IO.Pipelines.PipeReader+<ReadAtLeastAsyncCore>d__4:MoveNext():this (FullOpts)
+; Total bytes of code 536, prolog size 75, PerfScore 121.08, instruction count 120, allocated bytes for code 536 (MethodHash=6abe5a6d) for method System.IO.Pipelines.PipeReader+<ReadAtLeastAsyncCore>d__4:MoveNext():this (FullOpts)
; ============================================================
Unwind Info:-5 (-1.09%) : 25755.dasm - System.Sha1ForNonSecretPurposes:Drain(System.Span`1[uint]) (FullOpts)
@@ -10,7 +10,7 @@
;
; V00 arg0 [V00,T20] ( 4, 8 ) byref -> rcx ld-addr-op single-def
; V01 loc0 [V01,T03] ( 14, 97.04) int -> registers
-; V02 loc1 [V02,T00] ( 16,112.88) int -> registers
+; V02 loc1 [V02,T00] ( 15,104.96) int -> registers
; V03 loc2 [V03,T01] ( 15,104.96) int -> registers
; V04 loc3 [V04,T02] ( 15,104.96) int -> registers
; V05 loc4 [V05,T05] ( 10, 65.36) int -> registers
@@ -144,13 +144,11 @@ G_M28360_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {rax}, byr
mov ebx, 40
;; size=5 bbWeight=1 PerfScore 0.25
G_M28360_IG09: ; bbWeight=7.92, gcrefRegs=0000 {}, byrefRegs=0001 {rax}, byref, isz
- mov esi, r8d
- and esi, r10d
- mov edi, r8d
- and edi, r9d
- or esi, edi
+ mov esi, r10d
+ and esi, r9d
mov edi, r10d
- and edi, r9d
+ or edi, r9d
+ and edi, r8d
or esi, edi
mov edi, edx
rol edi, 5
@@ -168,7 +166,7 @@ G_M28360_IG09: ; bbWeight=7.92, gcrefRegs=0000 {}, byrefRegs=0001 {rax},
mov r10d, r8d
mov r8d, ebp
jl SHORT G_M28360_IG09
- ;; size=72 bbWeight=7.92 PerfScore 77.22
+ ;; size=67 bbWeight=7.92 PerfScore 73.26
G_M28360_IG10: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {rax}, byref
mov ebx, 60
;; size=5 bbWeight=1 PerfScore 0.25
@@ -223,7 +221,7 @@ G_M28360_IG14: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
int3
;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 460, prolog size 8, PerfScore 439.96, instruction count 137, allocated bytes for code 460 (MethodHash=c3689137) for method System.Sha1ForNonSecretPurposes:Drain(System.Span`1[uint]) (FullOpts)
+; Total bytes of code 455, prolog size 8, PerfScore 436.00, instruction count 135, allocated bytes for code 455 (MethodHash=c3689137) for method System.Sha1ForNonSecretPurposes:Drain(System.Span`1[uint]) (FullOpts)
; ============================================================
Unwind Info:-13 (-0.78%) : 268273.dasm - System.Uri:ParseRemaining():this (FullOpts)
@@ -13,7 +13,7 @@
; V01 loc0 [V01,T00] ( 73, 38 ) long -> rsi
; V02 loc1 [V02,T05] ( 12, 9.50) ref -> rdi class-hnd single-def <System.String>
; V03 loc2 [V03,T02] ( 9, 15 ) int -> r14
-; V04 loc3 [V04,T09] ( 12, 6 ) int -> r15
+; V04 loc3 [V04,T09] ( 11, 5.50) int -> r15
; V05 loc4 [V05,T14] ( 5, 2.50) ubyte -> r13
; V06 loc5 [V06,T03] ( 24, 12 ) int -> r12
; V07 loc6 [V07 ] ( 3, 1.50) struct (16) [rsp+0xB8] do-not-enreg[XDAS] must-init addr-exposed defined-via-address ld-addr-op <System.ReadOnlySpan`1[char]>
@@ -364,13 +364,9 @@ G_M48529_IG23: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000
mov rcx, 0xD1FFAB1E
test rsi, rcx
je SHORT G_M48529_IG24
- mov ecx, r15d
- and ecx, 0xD1FFAB1E
- mov edx, r15d
- and edx, 0xD1FFAB1E
- or ecx, edx
+ test r15d, 0xD1FFAB1E
jne SHORT G_M48529_IG25
- ;; size=72 bbWeight=0.50 PerfScore 3.38
+ ;; size=59 bbWeight=0.50 PerfScore 2.88
G_M48529_IG24: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
test al, 16
je SHORT G_M48529_IG29
@@ -617,7 +613,7 @@ G_M48529_IG43: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
int3
;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1661, prolog size 69, PerfScore 235.27, instruction count 395, allocated bytes for code 1661 (MethodHash=7d21426e) for method System.Uri:ParseRemaining():this (FullOpts)
+; Total bytes of code 1648, prolog size 69, PerfScore 234.77, instruction count 391, allocated bytes for code 1648 (MethodHash=7d21426e) for method System.Uri:ParseRemaining():this (FullOpts)
; ============================================================
Unwind Info:-17 (-0.70%) : 26962.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateMethods(System.RuntimeType+RuntimeTypeCache+Filter):System.Reflection.RuntimeMethodInfo[]:this (FullOpts)
@@ -12,7 +12,7 @@
; V00 this [V00,T73] ( 3, 3 ) ref -> rcx this class-hnd single-def <System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]>
; V01 arg1 [V01,T62] ( 3, 6 ) byref -> rdx ld-addr-op single-def
; V02 loc0 [V02 ] ( 3, 21 ) struct (24) [rbp+0xD8] do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.RuntimeType+ListBuilder`1[System.Reflection.RuntimeMethodInfo]>
-; V03 loc1 [V03,T02] ( 28,156.75) ref -> rdi class-hnd <System.RuntimeType>
+; V03 loc1 [V03,T01] ( 28,156.75) ref -> rdi class-hnd <System.RuntimeType>
; V04 loc2 [V04 ] ( 16,131 ) struct (16) [rbp+0xC8] do-not-enreg[XS] addr-exposed ld-addr-op <System.RuntimeTypeHandle+IntroducedMethodEnumerator>
;* V05 loc3 [V05 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.RuntimeTypeHandle+IntroducedMethodEnumerator>
;* V06 loc4 [V06 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.RuntimeMethodHandleInternal>
@@ -27,7 +27,7 @@
;* V15 loc13 [V15 ] ( 0, 0 ) int -> zero-ref
; V16 loc14 [V16,T58] ( 2, 12 ) int -> r12
;* V17 loc15 [V17 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.RuntimeMethodHandleInternal>
-; V18 loc16 [V18,T01] ( 11,168 ) int -> [rbp+0xC4]
+; V18 loc16 [V18,T02] ( 10,152 ) int -> [rbp+0xC4]
; V19 loc17 [V19,T18] ( 3, 48 ) int -> [rbp+0xC0]
; V20 loc18 [V20,T14] ( 4, 56 ) ubyte -> [rbp+0xBC] ptr
; V21 loc19 [V21,T05] ( 6, 72 ) int -> [rbp+0xB8] ptr
@@ -673,15 +673,9 @@ G_M27271_IG45: ; bbWeight=16, gcrefRegs=00C0 {rsi rdi}, byrefRegs=4008 {r
jmp G_M27271_IG60
;; size=18 bbWeight=16 PerfScore 68.00
G_M27271_IG46: ; bbWeight=16, gcrefRegs=00C0 {rsi rdi}, byrefRegs=4008 {rbx r14}, byref
- mov eax, dword ptr [rbp+0xC4]
- mov ecx, eax
- and ecx, 0x400
- mov dword ptr [rbp+0xC4], eax
- mov edx, eax
- and edx, 64
- or ecx, edx
+ test dword ptr [rbp+0xC4], 0x440
je G_M27271_IG51
- ;; size=33 bbWeight=16 PerfScore 68.00
+ ;; size=16 bbWeight=16 PerfScore 32.00
G_M27271_IG47: ; bbWeight=16, gcrefRegs=00C0 {rsi rdi}, byrefRegs=4008 {rbx r14}, byref
mov r8d, dword ptr [rbp+0xB8]
cmp r8d, r15d
@@ -1226,7 +1220,7 @@ G_M27271_IG94: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 2441, prolog size 82, PerfScore 4707.96, instruction count 577, allocated bytes for code 2441 (MethodHash=20c79578) for method System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateMethods(System.RuntimeType+RuntimeTypeCache+Filter):System.Reflection.RuntimeMethodInfo[]:this (FullOpts)
+; Total bytes of code 2424, prolog size 82, PerfScore 4671.96, instruction count 571, allocated bytes for code 2424 (MethodHash=20c79578) for method System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateMethods(System.RuntimeType+RuntimeTypeCache+Filter):System.Reflection.RuntimeMethodInfo[]:this (FullOpts)
; ============================================================
Unwind Info:-9 (-0.45%) : 95994.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:ReclassifyArrayLiteralExpression(ushort,Microsoft.CodeAnalysis.SyntaxNode,int,bool,Microsoft.CodeAnalysis.VisualBasic.BoundArrayLiteral,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this (FullOpts)
@@ -12,7 +12,7 @@
; V00 this [V00,T04] ( 13, 7.50) ref -> rsi this class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Binder>
; V01 arg1 [V01,T11] ( 6, 3 ) ushort -> r13 single-def
; V02 arg2 [V02,T07] ( 8, 5 ) ref -> r14 class-hnd single-def <Microsoft.CodeAnalysis.SyntaxNode>
-; V03 arg3 [V03,T05] ( 11, 7.50) int -> rdi
+; V03 arg3 [V03,T05] ( 10, 6.50) int -> rdi
; V04 arg4 [V04,T40] ( 3, 1.50) ubyte -> [rbp+0x30] single-def
; V05 arg5 [V05,T02] ( 20, 10 ) ref -> rbx class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.BoundArrayLiteral>
; V06 arg6 [V06,T09] ( 11, 5.50) ref -> r15 class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol>
@@ -198,13 +198,9 @@ G_M11402_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; gcrRegs +[r12]
;; size=66 bbWeight=1 PerfScore 15.33
G_M11402_IG02: ; bbWeight=1, gcrefRegs=D048 {rbx rsi r12 r14 r15}, byrefRegs=0000 {}, byref
- mov ecx, edi
- and ecx, 3
- mov edx, edi
- and edx, 0xD1FFAB1E
- or ecx, edx
+ test edi, 0xD1FFAB1E
je G_M11402_IG23
- ;; size=21 bbWeight=1 PerfScore 2.25
+ ;; size=12 bbWeight=1 PerfScore 1.25
G_M11402_IG03: ; bbWeight=0.50, gcrefRegs=D048 {rbx rsi r12 r14 r15}, byrefRegs=0000 {}, byref, isz
mov rdx, gword ptr [rbx+0x20]
; gcrRegs +[rdx]
@@ -988,7 +984,7 @@ G_M11402_IG45: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 2002, prolog size 42, PerfScore 275.21, instruction count 458, allocated bytes for code 2002 (MethodHash=359ad375) for method Microsoft.CodeAnalysis.VisualBasic.Binder:ReclassifyArrayLiteralExpression(ushort,Microsoft.CodeAnalysis.SyntaxNode,int,bool,Microsoft.CodeAnalysis.VisualBasic.BoundArrayLiteral,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this (FullOpts)
+; Total bytes of code 1993, prolog size 42, PerfScore 274.21, instruction count 454, allocated bytes for code 1993 (MethodHash=359ad375) for method Microsoft.CodeAnalysis.VisualBasic.Binder:ReclassifyArrayLiteralExpression(ushort,Microsoft.CodeAnalysis.SyntaxNode,int,bool,Microsoft.CodeAnalysis.VisualBasic.BoundArrayLiteral,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this (FullOpts)
; ============================================================
Unwind Info:-129 (-57.33%) : 258389.dasm - System.IO.FileSystemAclExtensions:GetFileAccessFromRights(int):int (FullOpts)
@@ -8,67 +8,35 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 19, 11 ) int -> rcx single-def
-; V01 loc0 [V01,T01] ( 7, 4 ) int -> rbx
+; V00 arg0 [V00,T00] ( 6, 4.50) int -> rcx single-def
+; V01 loc0 [V01,T01] ( 8, 4.50) int -> rbx
; V02 OutArgs [V02 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <UNNAMED>
;
; Lcl frame size = 32
-G_M51374_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+G_M51374_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
push rbx
sub rsp, 32
;; size=5 bbWeight=1 PerfScore 1.25
-G_M51374_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M51374_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
xor ebx, ebx
mov edx, ecx
not edx
and edx, 0xD1FFAB1E
- je G_M51374_IG08
- ;; size=18 bbWeight=1 PerfScore 2.00
+ je SHORT G_M51374_IG05
+ ;; size=14 bbWeight=1 PerfScore 2.00
G_M51374_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov edx, ecx
not edx
and edx, 0x301BF
- je G_M51374_IG08
- mov edx, ecx
- and edx, 1
- mov eax, ecx
- and eax, 8
- or edx, eax
- mov eax, ecx
- and eax, 32
- mov r8d, ecx
- and r8d, 128
- or eax, r8d
- or edx, eax
- mov eax, ecx
- and eax, 0x20000
- mov r8d, ecx
- and r8d, 0xD1FFAB1E
- or eax, r8d
- mov r8d, ecx
- and r8d, 0xD1FFAB1E
- or eax, r8d
- mov r8d, 1
- or edx, eax
- cmovne ebx, r8d
- mov edx, ecx
- and edx, 4
- mov eax, ecx
- and eax, 0xD1FFAB1E
- or edx, eax
- mov eax, ecx
- and eax, 0x10000
- mov r8d, ecx
- and r8d, 64
- or eax, r8d
- or edx, eax
- je SHORT G_M51374_IG07
- ;; size=128 bbWeight=0.50 PerfScore 5.62
-G_M51374_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- or ebx, 2
- ;; size=3 bbWeight=0.50 PerfScore 0.12
-G_M51374_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ je SHORT G_M51374_IG05
+ mov edx, 1
+ test ecx, 0xD1FFAB1E
+ cmovne ebx, edx
+ mov edx, ebx
+ or edx, 2
+ test ecx, 0xD1FFAB1E
+ cmovne ebx, edx
mov rdx, qword ptr [(reloc)] ; const ptr
mov rdx, gword ptr [rdx]
; gcrRegs +[rdx]
@@ -77,36 +45,22 @@ G_M51374_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
; gcrRegs -[rdx]
; gcr arg pop 0
mov eax, ebx
- ;; size=20 bbWeight=0.50 PerfScore 3.75
+ ;; size=60 bbWeight=0.50 PerfScore 5.75
+G_M51374_IG04: ; bbWeight=0.50, epilog, nogc, extend
+ add rsp, 32
+ pop rbx
+ ret
+ ;; size=6 bbWeight=0.50 PerfScore 0.88
+G_M51374_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+ mov eax, 3
+ ;; size=5 bbWeight=0.50 PerfScore 0.12
G_M51374_IG06: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 32
pop rbx
ret
;; size=6 bbWeight=0.50 PerfScore 0.88
-G_M51374_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
- mov edx, ecx
- and edx, 256
- mov eax, ecx
- and eax, 2
- or edx, eax
- mov eax, ecx
- and eax, 16
- and ecx, 0xD1FFAB1E
- or ecx, eax
- or edx, ecx
- je SHORT G_M51374_IG05
- jmp SHORT G_M51374_IG04
- ;; size=34 bbWeight=0.50 PerfScore 2.75
-G_M51374_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov eax, 3
- ;; size=5 bbWeight=0.50 PerfScore 0.12
-G_M51374_IG09: ; bbWeight=0.50, epilog, nogc, extend
- add rsp, 32
- pop rbx
- ret
- ;; size=6 bbWeight=0.50 PerfScore 0.88
-; Total bytes of code 225, prolog size 5, PerfScore 17.38, instruction count 70, allocated bytes for code 225 (MethodHash=236c3751) for method System.IO.FileSystemAclExtensions:GetFileAccessFromRights(int):int (FullOpts)
+; Total bytes of code 96, prolog size 5, PerfScore 10.88, instruction count 30, allocated bytes for code 96 (MethodHash=236c3751) for method System.IO.FileSystemAclExtensions:GetFileAccessFromRights(int):int (FullOpts)
; ============================================================
Unwind Info:-52 (-2.02%) : 280457.dasm - Xunit.Sdk.Sha1Digest:ProcessBlock():this (FullOpts)
@@ -10,11 +10,11 @@
; Final local variable assignments
;
; V00 this [V00,T62] ( 14, 14 ) ref -> rcx this class-hnd single-def <Xunit.Sdk.Sha1Digest>
-; V01 loc0 [V01,T01] ( 70,290 ) int -> r8
-; V02 loc1 [V02,T04] ( 68,290 ) int -> r11
-; V03 loc2 [V03,T05] ( 61,290 ) int -> rsi
-; V04 loc3 [V04,T03] ( 69,290 ) int -> rbp
-; V05 loc4 [V05,T02] ( 70,290 ) int -> r15
+; V01 loc0 [V01,T01] ( 68,282 ) int -> r8
+; V02 loc1 [V02,T03] ( 67,282 ) int -> r11
+; V03 loc2 [V03,T05] ( 59,282 ) int -> rsi
+; V04 loc3 [V04,T04] ( 67,282 ) int -> rbp
+; V05 loc4 [V05,T02] ( 68,282 ) int -> r15
; V06 loc5 [V06,T00] ( 73,321 ) int -> registers
;* V07 loc6 [V07,T69] ( 0, 0 ) int -> zero-ref
; V08 loc7 [V08,T63] ( 2, 16 ) int -> r8
@@ -349,13 +349,11 @@ G_M42046_IG11: ; bbWeight=1, gcrefRegs=0003 {rax rcx}, byrefRegs=0000 {},
;; size=6 bbWeight=1 PerfScore 0.25
G_M42046_IG12: ; bbWeight=8, gcrefRegs=0003 {rax rcx}, byrefRegs=0000 {}, byref
lea r14d, [r13+0x01]
- mov edi, r11d
- and edi, esi
- mov ebx, r11d
- and ebx, ebp
- or ebx, edi
mov edi, esi
and edi, ebp
+ mov ebx, esi
+ or ebx, ebp
+ and ebx, r11d
or ebx, edi
mov edi, r8d
rol edi, 5
@@ -375,13 +373,11 @@ G_M42046_IG12: ; bbWeight=8, gcrefRegs=0003 {rax rcx}, byrefRegs=0000 {},
rol r11d, 30
mov edi, r14d
lea r14d, [rdi+0x01]
- mov ebx, r8d
- and ebx, r11d
- mov r13d, r8d
- and r13d, esi
- or ebx, r13d
+ mov ebx, r11d
+ and ebx, esi
mov r13d, r11d
- and r13d, esi
+ or r13d, esi
+ and r13d, r8d
or ebx, r13d
mov r13d, r15d
rol r13d, 5
@@ -395,14 +391,12 @@ G_M42046_IG12: ; bbWeight=8, gcrefRegs=0003 {rax rcx}, byrefRegs=0000 {},
rol r8d, 30
mov ebx, r14d
lea r14d, [rbx+0x01]
- mov r13d, r15d
- ; gcrRegs -[r13]
- and r13d, r8d
- mov edi, r15d
- and edi, r11d
- or edi, r13d
mov r13d, r8d
+ ; gcrRegs -[r13]
and r13d, r11d
+ mov edi, r8d
+ or edi, r11d
+ and edi, r15d
or edi, r13d
mov r13d, ebp
rol r13d, 5
@@ -416,19 +410,15 @@ G_M42046_IG12: ; bbWeight=8, gcrefRegs=0003 {rax rcx}, byrefRegs=0000 {},
rol r15d, 30
mov ebx, r14d
lea r14d, [rbx+0x01]
- mov r13d, ebp
- ; gcrRegs -[r13]
- and r13d, r15d
- mov edi, ebp
- and edi, r8d
- or edi, r13d
mov r13d, r15d
+ ; gcrRegs -[r13]
and r13d, r8d
+ mov edi, r15d
+ or edi, r8d
+ and edi, ebp
or edi, r13d
mov r13d, esi
rol r13d, 5
- ;; size=245 bbWeight=8 PerfScore 242.00
-G_M42046_IG13: ; bbWeight=8, extend
add r13d, r11d
add edi, r13d
mov r11, rax
@@ -437,15 +427,15 @@ G_M42046_IG13: ; bbWeight=8, extend
; gcrRegs -[r11]
lea r11d, [rdi+r11+D1FFAB1EH]
rol ebp, 30
+ ;; size=246 bbWeight=8 PerfScore 260.00
+G_M42046_IG13: ; bbWeight=8, extend
mov ebx, r14d
lea r14d, [rbx+0x01]
- mov edi, esi
- and edi, ebp
- mov r13d, esi
- and r13d, r15d
- or edi, r13d
+ mov edi, ebp
+ and edi, r15d
mov r13d, ebp
- and r13d, r15d
+ or r13d, r15d
+ and r13d, esi
or edi, r13d
mov r13d, r11d
rol r13d, 5
@@ -456,7 +446,7 @@ G_M42046_IG13: ; bbWeight=8, extend
mov r8d, dword ptr [r8+4*rbx+0x10]
; gcrRegs -[r8]
lea r8d, [rdi+r8+D1FFAB1EH]
- ;; size=83 bbWeight=8 PerfScore 92.00
+ ;; size=53 bbWeight=8 PerfScore 54.00
G_M42046_IG14: ; bbWeight=8, gcrefRegs=0003 {rax rcx}, byrefRegs=0000 {}, byref
rol esi, 30
dec r12d
@@ -762,13 +752,11 @@ G_M42046_IG25: ; bbWeight=0, gcrefRegs=0083 {rax rcx rdi}, byrefRegs=0000
rol r11d, 30
mov edi, r14d
lea r14d, [rdi+0x01]
- mov ebx, r8d
- and ebx, r11d
- mov r13d, r8d
- and r13d, esi
- or ebx, r13d
+ mov ebx, r11d
+ and ebx, esi
mov r13d, r11d
- and r13d, esi
+ or r13d, esi
+ and r13d, r8d
or ebx, r13d
mov r13d, r15d
rol r13d, 5
@@ -784,14 +772,12 @@ G_M42046_IG25: ; bbWeight=0, gcrefRegs=0083 {rax rcx rdi}, byrefRegs=0000
rol r8d, 30
mov ebx, r14d
lea r14d, [rbx+0x01]
- mov edi, r15d
- and edi, r8d
- mov r13d, r15d
- ; gcrRegs -[r13]
- and r13d, r11d
- or edi, r13d
+ mov edi, r8d
+ and edi, r11d
mov r13d, r8d
- and r13d, r11d
+ ; gcrRegs -[r13]
+ or r13d, r11d
+ and r13d, r15d
or edi, r13d
mov r13d, ebp
rol r13d, 5
@@ -807,14 +793,12 @@ G_M42046_IG25: ; bbWeight=0, gcrefRegs=0083 {rax rcx rdi}, byrefRegs=0000
rol r15d, 30
mov ebx, r14d
lea r14d, [rbx+0x01]
- mov edi, ebp
- and edi, r15d
- mov r13d, ebp
- ; gcrRegs -[r13]
- and r13d, r8d
- or edi, r13d
+ mov edi, r15d
+ and edi, r8d
mov r13d, r15d
- and r13d, r8d
+ ; gcrRegs -[r13]
+ or r13d, r8d
+ and r13d, ebp
or edi, r13d
mov r13d, esi
rol r13d, 5
@@ -827,18 +811,16 @@ G_M42046_IG25: ; bbWeight=0, gcrefRegs=0083 {rax rcx rdi}, byrefRegs=0000
mov r11d, dword ptr [r11+4*rbx+0x10]
; gcrRegs -[r11]
lea r11d, [rdi+r11+D1FFAB1EH]
- ;; size=245 bbWeight=0 PerfScore 0.00
-G_M42046_IG26: ; bbWeight=0, extend
rol ebp, 30
mov ebx, r14d
lea r14d, [rbx+0x01]
- mov edi, esi
- and edi, ebp
- mov r13d, esi
- and r13d, r15d
- or edi, r13d
+ mov edi, ebp
+ and edi, r15d
+ ;; size=242 bbWeight=0 PerfScore 0.00
+G_M42046_IG26: ; bbWeight=0, extend
mov r13d, ebp
- and r13d, r15d
+ or r13d, r15d
+ and r13d, esi
or edi, r13d
mov r13d, r11d
rol r13d, 5
@@ -852,7 +834,7 @@ G_M42046_IG26: ; bbWeight=0, extend
; gcrRegs -[r8]
lea r8d, [rdi+r8+D1FFAB1EH]
jmp G_M42046_IG14
- ;; size=75 bbWeight=0 PerfScore 0.00
+ ;; size=55 bbWeight=0 PerfScore 0.00
G_M42046_IG27: ; bbWeight=0, gcrefRegs=8003 {rax rcx r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[r15]
cmp r13d, r9d
@@ -939,7 +921,7 @@ G_M42046_IG29: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 2572, prolog size 16, PerfScore 1501.75, instruction count 706, allocated bytes for code 2572 (MethodHash=64eb5bc1) for method Xunit.Sdk.Sha1Digest:ProcessBlock():this (FullOpts)
+; Total bytes of code 2520, prolog size 16, PerfScore 1481.75, instruction count 688, allocated bytes for code 2520 (MethodHash=64eb5bc1) for method Xunit.Sdk.Sha1Digest:ProcessBlock():this (FullOpts)
; ============================================================
Unwind Info:-8 (-1.81%) : 60974.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:PerformMemberOverloadResolutionStart[System.__Canon](Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon]],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,bool,byref,ushort,bool):this (FullOpts)
@@ -16,7 +16,7 @@
; V05 arg4 [V05,T14] ( 1, 4 ) ref -> [rbp+0x38] class-hnd single-def <Microsoft.CodeAnalysis.CSharp.AnalyzedArguments>
; V06 arg5 [V06,T15] ( 1, 4 ) ubyte -> [rbp+0x40] single-def
; V07 arg6 [V07,T08] ( 3, 5.50) byref -> r15 single-def
-; V08 arg7 [V08,T09] ( 3, 5 ) ushort -> r13 single-def
+; V08 arg7 [V08,T09] ( 2, 4.50) ushort -> r13 single-def
; V09 arg8 [V09,T19] ( 1, 1 ) ubyte -> [rbp+0x58] single-def
; V10 loc0 [V10 ] ( 3, 5.50) ref -> [rbp-0x48] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.Collections.Generic.Dictionary`2[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon]]>
; V11 loc1 [V11,T01] ( 5, 17 ) int -> [rbp-0x4C]
@@ -172,10 +172,7 @@ G_M55161_IG07: ; bbWeight=1, gcrefRegs=4040 {rsi r14}, byrefRegs=8000 {r1
;; size=55 bbWeight=1 PerfScore 16.25
G_M55161_IG08: ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=8000 {r15}, byref, isz
movzx rcx, r13w
- and ecx, 64
- movzx rax, r13w
- and eax, 512
- or ecx, eax
+ test ecx, 576
jne SHORT G_M55161_IG09
mov rcx, rdi
call [CORINFO_HELP_READYTORUN_GENERIC_HANDLE]
@@ -188,7 +185,7 @@ G_M55161_IG08: ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=8000 {r15
; gcrRegs -[rdx rsi]
; byrRegs -[r8 r15]
jmp SHORT G_M55161_IG10
- ;; size=46 bbWeight=0.50 PerfScore 5.62
+ ;; size=38 bbWeight=0.50 PerfScore 5.25
G_M55161_IG09: ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
; gcrRegs +[rsi]
mov rcx, rdi
@@ -215,7 +212,7 @@ G_M55161_IG11: ; bbWeight=1, epilog, nogc, extend
ret
;; size=20 bbWeight=1 PerfScore 5.25
-; Total bytes of code 442, prolog size 37, PerfScore 198.75, instruction count 124, allocated bytes for code 442 (MethodHash=bcc22886) for method Microsoft.CodeAnalysis.CSharp.OverloadResolution:PerformMemberOverloadResolutionStart[System.__Canon](Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon]],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,bool,byref,ushort,bool):this (FullOpts)
+; Total bytes of code 434, prolog size 37, PerfScore 198.38, instruction count 121, allocated bytes for code 434 (MethodHash=bcc22886) for method Microsoft.CodeAnalysis.CSharp.OverloadResolution:PerformMemberOverloadResolutionStart[System.__Canon](Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon]],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,bool,byref,ushort,bool):this (FullOpts)
; ============================================================
Unwind Info:-8 (-3.24%) : 186718.dasm - Microsoft.CodeAnalysis.MetadataDecoder`5[System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon]:DecodeLocalVariableTypeOrThrow(System.Collections.Immutable.ImmutableArray`1[byte]):System.__Canon:this (FullOpts)
@@ -20,7 +20,7 @@
; V08 tmp1 [V08,T05] ( 3, 0 ) ref -> rsi class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.UnsupportedSignatureContent>
; V09 tmp2 [V09,T06] ( 3, 0 ) ref -> rsi class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.UnsupportedSignatureContent>
; V10 tmp3 [V10 ] ( 6, 6 ) ref -> [rsp+0xA8] do-not-enreg[X] addr-exposed single-def "field V01.array (fldOffset=0x0)" P-DEP
-; V11 tmp4 [V11,T04] ( 3, 3 ) ubyte -> rax single-def "V06.[016..017)"
+; V11 tmp4 [V11,T04] ( 2, 2 ) ubyte -> rax single-def "V06.[016..017)"
; V12 tmp5 [V12,T01] ( 2, 4 ) long -> rdx "Cast away GC"
; V13 tmp6 [V13,T02] ( 2, 4 ) long -> rdx "argument with side effect"
;
@@ -75,14 +75,11 @@ G_M41458_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
; gcr arg pop 0
cmp dword ptr [rbx], ebx
movzx rax, byte ptr [rsp+0x38]
- mov ecx, eax
- and ecx, 1
- and eax, 2
- or eax, ecx
+ test al, 3
jne SHORT G_M41458_IG05
mov rax, gword ptr [rsp+0x30]
; gcrRegs +[rax]
- ;; size=124 bbWeight=1 PerfScore 31.00
+ ;; size=116 bbWeight=1 PerfScore 30.25
G_M41458_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 136
pop rbx
@@ -127,7 +124,7 @@ G_M41458_IG05: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
int3
;; size=28 bbWeight=0 PerfScore 0.00
-; Total bytes of code 247, prolog size 46, PerfScore 42.33, instruction count 57, allocated bytes for code 247 (MethodHash=74a85e0d) for method Microsoft.CodeAnalysis.MetadataDecoder`5[System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon]:DecodeLocalVariableTypeOrThrow(System.Collections.Immutable.ImmutableArray`1[byte]):System.__Canon:this (FullOpts)
+; Total bytes of code 239, prolog size 46, PerfScore 41.58, instruction count 54, allocated bytes for code 239 (MethodHash=74a85e0d) for method Microsoft.CodeAnalysis.MetadataDecoder`5[System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon]:DecodeLocalVariableTypeOrThrow(System.Collections.Immutable.ImmutableArray`1[byte]):System.__Canon:this (FullOpts)
; ============================================================
Unwind Info:libraries.pmi.windows.x64.checked.mch
-16 (-29.63%) : 70963.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxToken:ClearFlagIfMissing():this (FullOpts)
@@ -13,7 +13,6 @@
; V02 tmp1 [V02,T01] ( 3, 3 ) byref -> rcx single-def "dup spill"
;* V03 tmp2 [V03 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
; V04 cse0 [V04,T02] ( 3, 1.50) int -> rax "CSE #01: aggressive"
-; V05 cse1 [V05,T03] ( 3, 1.50) int -> rax "CSE #02: aggressive"
;
; Lcl frame size = 0
@@ -36,19 +35,14 @@ G_M26237_IG03: ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0000 {},
add rcx, 14
; gcrRegs -[rcx]
; byrRegs +[rcx]
- movzx rax, word ptr [rcx]
- mov edx, eax
- and edx, 0xF000
- and eax, 0xFFE
- or eax, edx
- mov word ptr [rcx], ax
- ;; size=43 bbWeight=0.50 PerfScore 4.38
+ and word ptr [rcx], 0xFFFE
+ ;; size=27 bbWeight=0.50 PerfScore 3.88
G_M26237_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
; byrRegs -[rcx]
ret
;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 54, prolog size 0, PerfScore 10.38, instruction count 16, allocated bytes for code 54 (MethodHash=ad9c9982) for method Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxToken:ClearFlagIfMissing():this (FullOpts)
+; Total bytes of code 38, prolog size 0, PerfScore 9.88, instruction count 11, allocated bytes for code 38 (MethodHash=ad9c9982) for method Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxToken:ClearFlagIfMissing():this (FullOpts)
; ============================================================
Unwind Info:-20 (-16.81%) : 81660.dasm - Microsoft.CodeAnalysis.VisualBasic.Conversions:Classify_Reference_Array_TypeParameterConversion(Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,int,byref):int (FullOpts)
@@ -8,11 +8,11 @@
; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T01] ( 5, 4 ) ref -> rbx class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol>
-; V01 arg1 [V01,T02] ( 5, 4 ) ref -> rsi class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol>
-; V02 arg2 [V02,T04] ( 5, 4 ) int -> rbp single-def
-; V03 arg3 [V03,T03] ( 5, 4 ) byref -> rdi single-def
-; V04 loc0 [V04,T00] ( 8, 6 ) int -> rax
+; V00 arg0 [V00,T00] ( 5, 4 ) ref -> rbx class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol>
+; V01 arg1 [V01,T01] ( 5, 4 ) ref -> rsi class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol>
+; V02 arg2 [V02,T03] ( 5, 4 ) int -> rbp single-def
+; V03 arg3 [V03,T02] ( 5, 4 ) byref -> rdi single-def
+; V04 loc0 [V04,T04] ( 6, 4.50) int -> rax
; V05 OutArgs [V05 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <UNNAMED>
;
; Lcl frame size = 40
@@ -43,13 +43,9 @@ G_M15585_IG02: ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0080 {rd
; gcrRegs -[rcx rdx]
; byrRegs -[r9]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 3
- mov edx, eax
- and edx, 0xD1FFAB1E
- or ecx, edx
+ test eax, 0xD1FFAB1E
je SHORT G_M15585_IG04
- ;; size=35 bbWeight=1 PerfScore 6.25
+ ;; size=25 bbWeight=1 PerfScore 5.25
G_M15585_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
; gcrRegs -[rbx rsi]
; byrRegs -[rdi]
@@ -74,11 +70,7 @@ G_M15585_IG04: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=004
; gcrRegs -[rcx rdx]
; byrRegs -[r9]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 3
- mov edx, eax
- and edx, 0xD1FFAB1E
- or ecx, edx
+ test eax, 0xD1FFAB1E
jne SHORT G_M15585_IG03
mov rcx, rbx
; gcrRegs +[rcx]
@@ -92,9 +84,9 @@ G_M15585_IG04: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=004
; byrRegs -[rdi r9]
; gcr arg pop 0
jmp SHORT G_M15585_IG03
- ;; size=55 bbWeight=0.50 PerfScore 6.12
+ ;; size=45 bbWeight=0.50 PerfScore 5.62
-; Total bytes of code 119, prolog size 8, PerfScore 20.88, instruction count 43, allocated bytes for code 119 (MethodHash=0982c31e) for method Microsoft.CodeAnalysis.VisualBasic.Conversions:Classify_Reference_Array_TypeParameterConversion(Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,int,byref):int (FullOpts)
+; Total bytes of code 99, prolog size 8, PerfScore 19.38, instruction count 35, allocated bytes for code 99 (MethodHash=0982c31e) for method Microsoft.CodeAnalysis.VisualBasic.Conversions:Classify_Reference_Array_TypeParameterConversion(Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,int,byref):int (FullOpts)
; ============================================================
Unwind Info:-20 (-9.39%) : 39458.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:CreateMissing(ushort):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (FullOpts)
@@ -18,9 +18,8 @@
;* V07 tmp6 [V07 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
; V08 tmp7 [V08,T05] ( 3, 3 ) ref -> rax single-def "arr expr"
; V09 cse0 [V09,T07] ( 3, 1.50) int -> r8 "CSE #02: aggressive"
-; V10 cse1 [V10,T08] ( 3, 1.50) int -> rdx "CSE #04: aggressive"
-; V11 cse2 [V11,T02] ( 5, 3.50) int -> rsi "CSE #01: aggressive"
-; V12 cse3 [V12,T06] ( 3, 1.50) byref -> rcx "CSE #03: aggressive"
+; V10 cse1 [V10,T02] ( 5, 3.50) int -> rsi "CSE #01: aggressive"
+; V11 cse2 [V11,T06] ( 3, 1.50) byref -> rcx "CSE #03: aggressive"
;
; Lcl frame size = 40
@@ -60,14 +59,8 @@ G_M29564_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
or r8d, r10d
or r8d, 1
mov word ptr [rdx], r8w
- movzx rdx, word ptr [rcx]
- ; byrRegs -[rdx]
- mov r8d, edx
- and r8d, 0xF000
- and edx, 0xFFE
- or edx, r8d
- mov word ptr [rcx], dx
- ;; size=96 bbWeight=0.50 PerfScore 6.88
+ and word ptr [rcx], 0xFFFE
+ ;; size=76 bbWeight=0.50 PerfScore 6.38
G_M29564_IG05: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 40
pop rbx
@@ -76,7 +69,7 @@ G_M29564_IG05: ; bbWeight=0.50, epilog, nogc, extend
;; size=7 bbWeight=0.50 PerfScore 1.12
G_M29564_IG06: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rax]
- ; byrRegs -[rcx]
+ ; byrRegs -[rcx rdx]
mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
mov rax, gword ptr [rax]
; gcrRegs +[rax]
@@ -116,7 +109,7 @@ G_M29564_IG11: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 213, prolog size 6, PerfScore 22.12, instruction count 56, allocated bytes for code 213 (MethodHash=67038c83) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:CreateMissing(ushort):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (FullOpts)
+; Total bytes of code 193, prolog size 6, PerfScore 21.62, instruction count 51, allocated bytes for code 193 (MethodHash=67038c83) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:CreateMissing(ushort):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (FullOpts)
; ============================================================
Unwind Info:-17 (-9.09%) : 72015.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxFactory:get_MissingEmptyToken():Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.PunctuationSyntax (FullOpts)
@@ -15,10 +15,9 @@
; V04 tmp4 [V04,T03] ( 3, 3 ) ref -> rax class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.PunctuationSyntax>
; V05 tmp5 [V05,T04] ( 3, 3 ) byref -> rax single-def "dup spill"
;* V06 tmp6 [V06 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-;* V07 cse0 [V07,T07] ( 0, 0 ) byref -> zero-ref "CSE #03: aggressive"
+;* V07 cse0 [V07,T06] ( 0, 0 ) byref -> zero-ref "CSE #03: aggressive"
; V08 cse1 [V08,T05] ( 3, 1.50) int -> rax "CSE #01: aggressive"
-; V09 cse2 [V09,T06] ( 3, 1.50) int -> rcx "CSE #06: aggressive"
-; V10 cse3 [V10,T01] ( 5, 4 ) long -> rbx "CSE #04: aggressive"
+; V09 cse2 [V09,T01] ( 5, 4 ) long -> rbx "CSE #04: aggressive"
;
; Lcl frame size = 40
@@ -75,13 +74,8 @@ G_M30808_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
add rax, 14
; gcrRegs -[rax]
; byrRegs +[rax]
- movzx rcx, word ptr [rax]
- mov edx, ecx
- and edx, 0xF000
- and ecx, 0xFFE
- or ecx, edx
- mov word ptr [rax], cx
- ;; size=122 bbWeight=0.50 PerfScore 11.38
+ and word ptr [rax], 0xFFFE
+ ;; size=105 bbWeight=0.50 PerfScore 10.88
G_M30808_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; byrRegs -[rax]
mov rax, gword ptr [rbx]
@@ -101,7 +95,7 @@ G_M30808_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
jmp G_M30808_IG03
;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 187, prolog size 6, PerfScore 24.12, instruction count 46, allocated bytes for code 187 (MethodHash=547787a7) for method Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxFactory:get_MissingEmptyToken():Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.PunctuationSyntax (FullOpts)
+; Total bytes of code 170, prolog size 6, PerfScore 23.62, instruction count 41, allocated bytes for code 170 (MethodHash=547787a7) for method Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxFactory:get_MissingEmptyToken():Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.PunctuationSyntax (FullOpts)
; ============================================================
Unwind Info:-14 (-9.03%) : 232183.dasm - System.Speech.Recognition.RecognizerBase:ConvertCompareOptions(int):int (FullOpts)
@@ -8,7 +8,7 @@
; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T01] ( 7, 7 ) int -> rcx single-def
+; V00 arg0 [V00,T01] ( 6, 6 ) int -> rcx single-def
;* V01 loc0 [V01 ] ( 0, 0 ) int -> zero-ref single-def
; V02 loc1 [V02,T00] ( 10, 10 ) int -> rax
; V03 OutArgs [V03 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <UNNAMED>
@@ -24,13 +24,9 @@ G_M61916_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=5 bbWeight=1 PerfScore 1.25
G_M61916_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
xor eax, eax
- mov edx, ecx
- and edx, 1
- mov r8d, ecx
- and r8d, 0xD1FFAB1E
- mov r10d, 1
- or edx, r8d
- cmovne eax, r10d
+ mov edx, 1
+ test ecx, 0xD1FFAB1E
+ cmovne eax, edx
mov edx, eax
or edx, 0x10000
test cl, 8
@@ -41,7 +37,7 @@ G_M61916_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
cmovne eax, edx
test ecx, 0xD1FFAB1E
jne SHORT G_M61916_IG04
- ;; size=66 bbWeight=1 PerfScore 6.00
+ ;; size=52 bbWeight=1 PerfScore 5.00
G_M61916_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 32
pop rbx
@@ -80,7 +76,7 @@ G_M61916_IG04: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
int3
;; size=78 bbWeight=0 PerfScore 0.00
-; Total bytes of code 155, prolog size 5, PerfScore 9.00, instruction count 38, allocated bytes for code 155 (MethodHash=85610e23) for method System.Speech.Recognition.RecognizerBase:ConvertCompareOptions(int):int (FullOpts)
+; Total bytes of code 141, prolog size 5, PerfScore 8.00, instruction count 34, allocated bytes for code 141 (MethodHash=85610e23) for method System.Speech.Recognition.RecognizerBase:ConvertCompareOptions(int):int (FullOpts)
; ============================================================
Unwind Info:-17 (-8.67%) : 54895.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+MissingTokenWithTrivia:.ctor(ushort,Microsoft.CodeAnalysis.GreenNode,Microsoft.CodeAnalysis.GreenNode):this (FullOpts)
@@ -19,8 +19,7 @@
; V08 tmp4 [V08,T04] ( 3, 6 ) byref -> rbp single-def "dup spill"
;* V09 tmp5 [V09 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
; V10 cse0 [V10,T07] ( 3, 3 ) int -> rdx "CSE #01: aggressive"
-; V11 cse1 [V11,T08] ( 3, 3 ) int -> rax "CSE #03: aggressive"
-; V12 cse2 [V12,T06] ( 3, 3 ) byref -> rbp "CSE #02: aggressive"
+; V11 cse1 [V11,T06] ( 3, 3 ) byref -> rbp "CSE #02: aggressive"
;
; Lcl frame size = 40
@@ -106,13 +105,8 @@ G_M20210_IG06: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0020
; byrRegs -[rcx]
;; size=24 bbWeight=0.50 PerfScore 2.62
G_M20210_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0020 {rbp}, byref
- movzx rax, word ptr [rbp]
- mov ecx, eax
- and ecx, 0xF000
- and eax, 0xFFE
- or eax, ecx
- mov word ptr [rbp], ax
- ;; size=23 bbWeight=1 PerfScore 4.00
+ and word ptr [rbp], 0xFFFE
+ ;; size=6 bbWeight=1 PerfScore 3.00
G_M20210_IG08: ; bbWeight=1, epilog, nogc, extend
add rsp, 40
pop rbx
@@ -130,7 +124,7 @@ G_M20210_IG09: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=00C8 {
jmp G_M20210_IG03
;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 196, prolog size 8, PerfScore 39.50, instruction count 58, allocated bytes for code 196 (MethodHash=a541b10d) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+MissingTokenWithTrivia:.ctor(ushort,Microsoft.CodeAnalysis.GreenNode,Microsoft.CodeAnalysis.GreenNode):this (FullOpts)
+; Total bytes of code 179, prolog size 8, PerfScore 38.50, instruction count 53, allocated bytes for code 179 (MethodHash=a541b10d) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+MissingTokenWithTrivia:.ctor(ushort,Microsoft.CodeAnalysis.GreenNode,Microsoft.CodeAnalysis.GreenNode):this (FullOpts)
; ============================================================
Unwind Info:-16 (-8.08%) : 39459.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:CreateMissing(ushort,Microsoft.CodeAnalysis.GreenNode,Microsoft.CodeAnalysis.GreenNode):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (FullOpts)
@@ -19,8 +19,7 @@
; V08 tmp5 [V08,T04] ( 3, 6 ) byref -> rdi single-def "dup spill"
;* V09 tmp6 [V09 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
; V10 cse0 [V10,T07] ( 3, 3 ) int -> rdx "CSE #01: aggressive"
-; V11 cse1 [V11,T08] ( 3, 3 ) int -> rax "CSE #03: aggressive"
-; V12 cse2 [V12,T06] ( 3, 3 ) byref -> rdi "CSE #02: aggressive"
+; V11 cse1 [V11,T06] ( 3, 3 ) byref -> rdi "CSE #02: aggressive"
;
; Lcl frame size = 40
@@ -103,15 +102,10 @@ G_M15036_IG06: ; bbWeight=0.50, gcrefRegs=0060 {rbp rsi}, byrefRegs=0080
; byrRegs -[rcx]
;; size=24 bbWeight=0.50 PerfScore 2.62
G_M15036_IG07: ; bbWeight=1, gcrefRegs=0020 {rbp}, byrefRegs=0080 {rdi}, byref
- movzx rax, word ptr [rdi]
- mov ecx, eax
- and ecx, 0xF000
- and eax, 0xFFE
- or eax, ecx
- mov word ptr [rdi], ax
+ and word ptr [rdi], 0xFFFE
mov rax, rbp
; gcrRegs +[rax]
- ;; size=24 bbWeight=1 PerfScore 4.25
+ ;; size=8 bbWeight=1 PerfScore 3.25
G_M15036_IG08: ; bbWeight=1, epilog, nogc, extend
add rsp, 40
pop rbx
@@ -129,7 +123,7 @@ G_M15036_IG09: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0048 {
jmp G_M15036_IG03
;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 198, prolog size 8, PerfScore 32.00, instruction count 57, allocated bytes for code 198 (MethodHash=5225c543) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:CreateMissing(ushort,Microsoft.CodeAnalysis.GreenNode,Microsoft.CodeAnalysis.GreenNode):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (FullOpts)
+; Total bytes of code 182, prolog size 8, PerfScore 31.00, instruction count 52, allocated bytes for code 182 (MethodHash=5225c543) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:CreateMissing(ushort,Microsoft.CodeAnalysis.GreenNode,Microsoft.CodeAnalysis.GreenNode):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (FullOpts)
; ============================================================
Unwind Info:-16 (-8.08%) : 39176.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxFactory:MissingToken(Microsoft.CodeAnalysis.GreenNode,ushort,Microsoft.CodeAnalysis.GreenNode):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (FullOpts)
@@ -18,10 +18,9 @@
;* V07 tmp4 [V07 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
; V08 tmp5 [V08,T04] ( 3, 6 ) byref -> rdi single-def "dup spill"
;* V09 tmp6 [V09 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-;* V10 cse0 [V10,T09] ( 0, 0 ) byref -> zero-ref "CSE #02: aggressive"
+;* V10 cse0 [V10,T08] ( 0, 0 ) byref -> zero-ref "CSE #02: aggressive"
; V11 cse1 [V11,T07] ( 3, 3 ) int -> rdx "CSE #03: aggressive"
-; V12 cse2 [V12,T08] ( 3, 3 ) int -> rax "CSE #05: aggressive"
-; V13 cse3 [V13,T06] ( 3, 3 ) byref -> rdi "CSE #04: aggressive"
+; V12 cse2 [V12,T06] ( 3, 3 ) byref -> rdi "CSE #04: aggressive"
;
; Lcl frame size = 40
@@ -104,15 +103,10 @@ G_M10220_IG06: ; bbWeight=0.50, gcrefRegs=0060 {rbp rsi}, byrefRegs=0080
; byrRegs -[rcx]
;; size=24 bbWeight=0.50 PerfScore 2.62
G_M10220_IG07: ; bbWeight=1, gcrefRegs=0020 {rbp}, byrefRegs=0080 {rdi}, byref
- movzx rax, word ptr [rdi]
- mov ecx, eax
- and ecx, 0xF000
- and eax, 0xFFE
- or eax, ecx
- mov word ptr [rdi], ax
+ and word ptr [rdi], 0xFFFE
mov rax, rbp
; gcrRegs +[rax]
- ;; size=24 bbWeight=1 PerfScore 4.25
+ ;; size=8 bbWeight=1 PerfScore 3.25
G_M10220_IG08: ; bbWeight=1, epilog, nogc, extend
add rsp, 40
pop rbx
@@ -130,7 +124,7 @@ G_M10220_IG09: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0048 {
jmp G_M10220_IG03
;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 198, prolog size 8, PerfScore 32.00, instruction count 57, allocated bytes for code 198 (MethodHash=bb01d813) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxFactory:MissingToken(Microsoft.CodeAnalysis.GreenNode,ushort,Microsoft.CodeAnalysis.GreenNode):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (FullOpts)
+; Total bytes of code 182, prolog size 8, PerfScore 31.00, instruction count 52, allocated bytes for code 182 (MethodHash=bb01d813) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxFactory:MissingToken(Microsoft.CodeAnalysis.GreenNode,ushort,Microsoft.CodeAnalysis.GreenNode):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (FullOpts)
; ============================================================
Unwind Info:-17 (-7.94%) : 54896.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+MissingTokenWithTrivia:.ctor(ushort,Microsoft.CodeAnalysis.GreenNode,Microsoft.CodeAnalysis.GreenNode,Microsoft.CodeAnalysis.DiagnosticInfo[],Microsoft.CodeAnalysis.SyntaxAnnotation[]):this (FullOpts)
@@ -12,8 +12,8 @@
; V01 arg1 [V01,T05] ( 3, 3 ) ushort -> rbp single-def
; V02 arg2 [V02,T01] ( 5, 4 ) ref -> rsi class-hnd single-def <Microsoft.CodeAnalysis.GreenNode>
; V03 arg3 [V03,T02] ( 5, 4 ) ref -> rdi class-hnd single-def <Microsoft.CodeAnalysis.GreenNode>
-; V04 arg4 [V04,T09] ( 1, 1 ) ref -> [rsp+0x70] class-hnd single-def <Microsoft.CodeAnalysis.DiagnosticInfo[]>
-; V05 arg5 [V05,T10] ( 1, 1 ) ref -> [rsp+0x78] class-hnd single-def <Microsoft.CodeAnalysis.SyntaxAnnotation[]>
+; V04 arg4 [V04,T08] ( 1, 1 ) ref -> [rsp+0x70] class-hnd single-def <Microsoft.CodeAnalysis.DiagnosticInfo[]>
+; V05 arg5 [V05,T09] ( 1, 1 ) ref -> [rsp+0x78] class-hnd single-def <Microsoft.CodeAnalysis.SyntaxAnnotation[]>
; V06 OutArgs [V06 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <UNNAMED>
;* V07 tmp1 [V07 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V08 tmp2 [V08,T03] ( 3, 6 ) byref -> rcx single-def "dup spill"
@@ -21,8 +21,7 @@
; V10 tmp4 [V10,T04] ( 3, 6 ) byref -> rbp single-def "dup spill"
;* V11 tmp5 [V11 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
; V12 cse0 [V12,T07] ( 3, 3 ) int -> rdx "CSE #01: aggressive"
-; V13 cse1 [V13,T08] ( 3, 3 ) int -> rax "CSE #03: aggressive"
-; V14 cse2 [V14,T06] ( 3, 3 ) byref -> rbp "CSE #02: aggressive"
+; V13 cse1 [V13,T06] ( 3, 3 ) byref -> rbp "CSE #02: aggressive"
;
; Lcl frame size = 40
@@ -117,13 +116,8 @@ G_M35765_IG06: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0020
; byrRegs -[rcx]
;; size=24 bbWeight=0.50 PerfScore 2.62
G_M35765_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0020 {rbp}, byref
- movzx rax, word ptr [rbp]
- mov ecx, eax
- and ecx, 0xF000
- and eax, 0xFFE
- or eax, ecx
- mov word ptr [rbp], ax
- ;; size=23 bbWeight=1 PerfScore 4.00
+ and word ptr [rbp], 0xFFFE
+ ;; size=6 bbWeight=1 PerfScore 3.00
G_M35765_IG08: ; bbWeight=1, epilog, nogc, extend
add rsp, 40
pop rbx
@@ -141,7 +135,7 @@ G_M35765_IG09: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=00C8 {
jmp G_M35765_IG03
;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 214, prolog size 8, PerfScore 44.00, instruction count 62, allocated bytes for code 214 (MethodHash=464d744a) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+MissingTokenWithTrivia:.ctor(ushort,Microsoft.CodeAnalysis.GreenNode,Microsoft.CodeAnalysis.GreenNode,Microsoft.CodeAnalysis.DiagnosticInfo[],Microsoft.CodeAnalysis.SyntaxAnnotation[]):this (FullOpts)
+; Total bytes of code 197, prolog size 8, PerfScore 43.00, instruction count 57, allocated bytes for code 197 (MethodHash=464d744a) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+MissingTokenWithTrivia:.ctor(ushort,Microsoft.CodeAnalysis.GreenNode,Microsoft.CodeAnalysis.GreenNode,Microsoft.CodeAnalysis.DiagnosticInfo[],Microsoft.CodeAnalysis.SyntaxAnnotation[]):this (FullOpts)
; ============================================================
Unwind Info:-16 (-7.24%) : 28135.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFactory:MissingToken(Microsoft.CodeAnalysis.SyntaxTriviaList,ushort,Microsoft.CodeAnalysis.SyntaxTriviaList):Microsoft.CodeAnalysis.SyntaxToken (FullOpts)
@@ -26,10 +26,9 @@
;* V15 tmp11 [V15 ] ( 0, 0 ) ref -> zero-ref single-def "field V06.<Node>k__BackingField (fldOffset=0x8)" P-INDEP
;* V16 tmp12 [V16 ] ( 0, 0 ) int -> zero-ref "field V06.<Index>k__BackingField (fldOffset=0x10)" P-INDEP
;* V17 tmp13 [V17 ] ( 0, 0 ) int -> zero-ref "field V06.<Position>k__BackingField (fldOffset=0x14)" P-INDEP
-;* V18 cse0 [V18,T12] ( 0, 0 ) byref -> zero-ref "CSE #02: aggressive"
+;* V18 cse0 [V18,T11] ( 0, 0 ) byref -> zero-ref "CSE #02: aggressive"
; V19 cse1 [V19,T10] ( 3, 3 ) int -> rdx "CSE #03: aggressive"
-; V20 cse2 [V20,T11] ( 3, 3 ) int -> rax "CSE #05: aggressive"
-; V21 cse3 [V21,T09] ( 3, 3 ) byref -> rsi "CSE #04: aggressive"
+; V20 cse2 [V20,T09] ( 3, 3 ) byref -> rsi "CSE #04: aggressive"
;
; Lcl frame size = 32
@@ -116,17 +115,12 @@ G_M13657_IG06: ; bbWeight=0.50, gcrefRegs=4020 {rbp r14}, byrefRegs=0040
; byrRegs -[rcx]
;; size=24 bbWeight=0.50 PerfScore 2.62
G_M13657_IG07: ; bbWeight=1, gcrefRegs=4000 {r14}, byrefRegs=0040 {rsi}, byref
- movzx rax, word ptr [rsi]
- mov ecx, eax
- and ecx, 0xF000
- and eax, 0xFFE
- or eax, ecx
- mov word ptr [rsi], ax
+ and word ptr [rsi], 0xFFFE
xor rax, rax
; gcrRegs +[rax]
mov gword ptr [rbx], rax
mov gword ptr [rbx+0x08], r14
- ;; size=30 bbWeight=1 PerfScore 6.25
+ ;; size=14 bbWeight=1 PerfScore 5.25
G_M13657_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rax r14]
; byrRegs -[rsi]
@@ -150,7 +144,7 @@ G_M13657_IG10: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=00A0 {
jmp G_M13657_IG03
;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 221, prolog size 10, PerfScore 40.50, instruction count 64, allocated bytes for code 221 (MethodHash=353ccaa6) for method Microsoft.CodeAnalysis.CSharp.SyntaxFactory:MissingToken(Microsoft.CodeAnalysis.SyntaxTriviaList,ushort,Microsoft.CodeAnalysis.SyntaxTriviaList):Microsoft.CodeAnalysis.SyntaxToken (FullOpts)
+; Total bytes of code 205, prolog size 10, PerfScore 39.50, instruction count 59, allocated bytes for code 205 (MethodHash=353ccaa6) for method Microsoft.CodeAnalysis.CSharp.SyntaxFactory:MissingToken(Microsoft.CodeAnalysis.SyntaxTriviaList,ushort,Microsoft.CodeAnalysis.SyntaxTriviaList):Microsoft.CodeAnalysis.SyntaxToken (FullOpts)
; ============================================================
Unwind Info:-18 (-6.79%) : 29377.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxTokenParser:ParseLeadingTrivia():Microsoft.CodeAnalysis.CSharp.SyntaxTokenParser+Result:this (FullOpts)
@@ -11,8 +11,8 @@
; V00 this [V00,T06] ( 3, 3 ) ref -> rcx this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.SyntaxTokenParser>
; V01 RetBuf [V01,T01] ( 9, 9 ) long -> rbx single-def
;* V02 loc0 [V02 ] ( 0, 0 ) struct (16) zero-ref <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack>
-; V03 loc1 [V03,T12] ( 2, 2 ) int -> rbp single-def
-; V04 loc2 [V04,T13] ( 2, 2 ) struct (40) [rsp+0x28] do-not-enreg[DAS] must-init defined-via-address ld-addr-op <Microsoft.CodeAnalysis.SyntaxTriviaList>
+; V03 loc1 [V03,T11] ( 2, 2 ) int -> rbp single-def
+; V04 loc2 [V04,T12] ( 2, 2 ) struct (40) [rsp+0x28] do-not-enreg[DAS] must-init defined-via-address ld-addr-op <Microsoft.CodeAnalysis.SyntaxTriviaList>
;* V05 loc3 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+MissingTokenWithTrivia>
; V06 OutArgs [V06 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <UNNAMED>
;* V07 tmp1 [V07 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.SyntaxToken>
@@ -27,8 +27,8 @@
; V16 tmp10 [V16,T04] ( 3, 6 ) byref -> r13 single-def "dup spill"
;* V17 tmp11 [V17 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V18 tmp12 [V18 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[S] "Inlining Arg" <Microsoft.CodeAnalysis.SyntaxToken>
-; V19 tmp13 [V19,T11] ( 2, 2 ) ref -> rsi single-def "field V02._directives (fldOffset=0x0)" P-INDEP
-; V20 tmp14 [V20,T14] ( 2, 2 ) ubyte -> rdi single-def "field V02._seenAnyIfDirectives (fldOffset=0x8)" P-INDEP
+; V19 tmp13 [V19,T10] ( 2, 2 ) ref -> rsi single-def "field V02._directives (fldOffset=0x0)" P-INDEP
+; V20 tmp14 [V20,T13] ( 2, 2 ) ubyte -> rdi single-def "field V02._seenAnyIfDirectives (fldOffset=0x8)" P-INDEP
;* V21 tmp15 [V21 ] ( 0, 0 ) ref -> zero-ref single-def "field V07.<Parent>k__BackingField (fldOffset=0x0)" P-INDEP
;* V22 tmp16 [V22 ] ( 0, 0 ) ref -> zero-ref single-def "field V07.<Node>k__BackingField (fldOffset=0x8)" P-INDEP
;* V23 tmp17 [V23 ] ( 0, 0 ) int -> zero-ref single-def "field V07.<Index>k__BackingField (fldOffset=0x10)" P-INDEP
@@ -38,13 +38,12 @@
;* V27 tmp21 [V27 ] ( 0, 0 ) int -> zero-ref single-def "V08.[016..020)"
;* V28 tmp22 [V28 ] ( 0, 0 ) int -> zero-ref single-def "V08.[020..024)"
;* V29 tmp23 [V29 ] ( 0, 0 ) ref -> zero-ref single-def "V08.[024..032)"
-; V30 tmp24 [V30,T15] ( 2, 2 ) ubyte -> rdi single-def "V08.[032..033)"
+; V30 tmp24 [V30,T14] ( 2, 2 ) ubyte -> rdi single-def "V08.[032..033)"
; V31 tmp25 [V31,T05] ( 3, 6 ) ref -> rdx single-def "BlockOp address local"
-;* V32 cse0 [V32,T16] ( 0, 0 ) byref -> zero-ref "CSE #03: aggressive"
+;* V32 cse0 [V32,T15] ( 0, 0 ) byref -> zero-ref "CSE #03: aggressive"
; V33 cse1 [V33,T07] ( 4, 4 ) ref -> rcx "CSE #01: aggressive"
; V34 cse2 [V34,T09] ( 3, 3 ) int -> rdx "CSE #04: aggressive"
-; V35 cse3 [V35,T10] ( 3, 3 ) int -> rax "CSE #06: aggressive"
-; V36 cse4 [V36,T08] ( 3, 3 ) byref -> r13 "CSE #05: aggressive"
+; V35 cse3 [V35,T08] ( 3, 3 ) byref -> r13 "CSE #05: aggressive"
;
; Lcl frame size = 80
@@ -125,17 +124,12 @@ G_M51853_IG04: ; bbWeight=0.50, gcrefRegs=C040 {rsi r14 r15}, byrefRegs=2
; byrRegs -[rcx]
;; size=24 bbWeight=0.50 PerfScore 2.62
G_M51853_IG05: ; bbWeight=1, gcrefRegs=8040 {rsi r15}, byrefRegs=2000 {r13}, byref
- movzx rax, word ptr [r13]
- mov ecx, eax
- and ecx, 0xF000
- and eax, 0xFFE
- or eax, ecx
- mov word ptr [r13], ax
+ and word ptr [r13], 0xFFFE
xor rax, rax
; gcrRegs +[rax]
mov gword ptr [rbx], rax
mov gword ptr [rbx+0x08], r15
- ;; size=34 bbWeight=1 PerfScore 6.25
+ ;; size=16 bbWeight=1 PerfScore 5.25
G_M51853_IG06: ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rax r15]
; byrRegs -[r13]
@@ -164,7 +158,7 @@ G_M51853_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=4040 {
jmp G_M51853_IG03
;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 265, prolog size 31, PerfScore 53.71, instruction count 72, allocated bytes for code 265 (MethodHash=25e03572) for method Microsoft.CodeAnalysis.CSharp.SyntaxTokenParser:ParseLeadingTrivia():Microsoft.CodeAnalysis.CSharp.SyntaxTokenParser+Result:this (FullOpts)
+; Total bytes of code 247, prolog size 31, PerfScore 52.71, instruction count 67, allocated bytes for code 247 (MethodHash=25e03572) for method Microsoft.CodeAnalysis.CSharp.SyntaxTokenParser:ParseLeadingTrivia():Microsoft.CodeAnalysis.CSharp.SyntaxTokenParser+Result:this (FullOpts)
; ============================================================
Unwind Info:-18 (-6.79%) : 29378.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxTokenParser:ParseTrailingTrivia():Microsoft.CodeAnalysis.CSharp.SyntaxTokenParser+Result:this (FullOpts)
@@ -11,8 +11,8 @@
; V00 this [V00,T06] ( 3, 3 ) ref -> rcx this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.SyntaxTokenParser>
; V01 RetBuf [V01,T01] ( 9, 9 ) long -> rbx single-def
;* V02 loc0 [V02 ] ( 0, 0 ) struct (16) zero-ref <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.DirectiveStack>
-; V03 loc1 [V03,T12] ( 2, 2 ) int -> rbp single-def
-; V04 loc2 [V04,T13] ( 2, 2 ) struct (40) [rsp+0x28] do-not-enreg[DAS] must-init defined-via-address ld-addr-op <Microsoft.CodeAnalysis.SyntaxTriviaList>
+; V03 loc1 [V03,T11] ( 2, 2 ) int -> rbp single-def
+; V04 loc2 [V04,T12] ( 2, 2 ) struct (40) [rsp+0x28] do-not-enreg[DAS] must-init defined-via-address ld-addr-op <Microsoft.CodeAnalysis.SyntaxTriviaList>
;* V05 loc3 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+MissingTokenWithTrivia>
; V06 OutArgs [V06 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <UNNAMED>
;* V07 tmp1 [V07 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.SyntaxToken>
@@ -27,8 +27,8 @@
; V16 tmp10 [V16,T04] ( 3, 6 ) byref -> r13 single-def "dup spill"
;* V17 tmp11 [V17 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V18 tmp12 [V18 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[S] "Inlining Arg" <Microsoft.CodeAnalysis.SyntaxToken>
-; V19 tmp13 [V19,T11] ( 2, 2 ) ref -> rsi single-def "field V02._directives (fldOffset=0x0)" P-INDEP
-; V20 tmp14 [V20,T14] ( 2, 2 ) ubyte -> rdi single-def "field V02._seenAnyIfDirectives (fldOffset=0x8)" P-INDEP
+; V19 tmp13 [V19,T10] ( 2, 2 ) ref -> rsi single-def "field V02._directives (fldOffset=0x0)" P-INDEP
+; V20 tmp14 [V20,T13] ( 2, 2 ) ubyte -> rdi single-def "field V02._seenAnyIfDirectives (fldOffset=0x8)" P-INDEP
;* V21 tmp15 [V21 ] ( 0, 0 ) ref -> zero-ref single-def "field V07.<Parent>k__BackingField (fldOffset=0x0)" P-INDEP
;* V22 tmp16 [V22 ] ( 0, 0 ) ref -> zero-ref single-def "field V07.<Node>k__BackingField (fldOffset=0x8)" P-INDEP
;* V23 tmp17 [V23 ] ( 0, 0 ) int -> zero-ref single-def "field V07.<Index>k__BackingField (fldOffset=0x10)" P-INDEP
@@ -38,13 +38,12 @@
;* V27 tmp21 [V27 ] ( 0, 0 ) int -> zero-ref single-def "V08.[016..020)"
;* V28 tmp22 [V28 ] ( 0, 0 ) int -> zero-ref single-def "V08.[020..024)"
;* V29 tmp23 [V29 ] ( 0, 0 ) ref -> zero-ref single-def "V08.[024..032)"
-; V30 tmp24 [V30,T15] ( 2, 2 ) ubyte -> rdi single-def "V08.[032..033)"
+; V30 tmp24 [V30,T14] ( 2, 2 ) ubyte -> rdi single-def "V08.[032..033)"
; V31 tmp25 [V31,T05] ( 3, 6 ) ref -> rdx single-def "BlockOp address local"
-;* V32 cse0 [V32,T16] ( 0, 0 ) byref -> zero-ref "CSE #03: aggressive"
+;* V32 cse0 [V32,T15] ( 0, 0 ) byref -> zero-ref "CSE #03: aggressive"
; V33 cse1 [V33,T07] ( 4, 4 ) ref -> rcx "CSE #01: aggressive"
; V34 cse2 [V34,T09] ( 3, 3 ) int -> rdx "CSE #04: aggressive"
-; V35 cse3 [V35,T10] ( 3, 3 ) int -> rax "CSE #06: aggressive"
-; V36 cse4 [V36,T08] ( 3, 3 ) byref -> r13 "CSE #05: aggressive"
+; V35 cse3 [V35,T08] ( 3, 3 ) byref -> r13 "CSE #05: aggressive"
;
; Lcl frame size = 80
@@ -125,17 +124,12 @@ G_M42883_IG04: ; bbWeight=0.50, gcrefRegs=C040 {rsi r14 r15}, byrefRegs=2
; byrRegs -[rcx]
;; size=24 bbWeight=0.50 PerfScore 2.62
G_M42883_IG05: ; bbWeight=1, gcrefRegs=8040 {rsi r15}, byrefRegs=2000 {r13}, byref
- movzx rax, word ptr [r13]
- mov ecx, eax
- and ecx, 0xF000
- and eax, 0xFFE
- or eax, ecx
- mov word ptr [r13], ax
+ and word ptr [r13], 0xFFFE
xor rax, rax
; gcrRegs +[rax]
mov gword ptr [rbx], rax
mov gword ptr [rbx+0x08], r15
- ;; size=34 bbWeight=1 PerfScore 6.25
+ ;; size=16 bbWeight=1 PerfScore 5.25
G_M42883_IG06: ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rax r15]
; byrRegs -[r13]
@@ -164,7 +158,7 @@ G_M42883_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=4040 {
jmp G_M42883_IG03
;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 265, prolog size 31, PerfScore 53.71, instruction count 72, allocated bytes for code 265 (MethodHash=2566587c) for method Microsoft.CodeAnalysis.CSharp.SyntaxTokenParser:ParseTrailingTrivia():Microsoft.CodeAnalysis.CSharp.SyntaxTokenParser+Result:this (FullOpts)
+; Total bytes of code 247, prolog size 31, PerfScore 52.71, instruction count 67, allocated bytes for code 247 (MethodHash=2566587c) for method Microsoft.CodeAnalysis.CSharp.SyntaxTokenParser:ParseTrailingTrivia():Microsoft.CodeAnalysis.CSharp.SyntaxTokenParser+Result:this (FullOpts)
; ============================================================
Unwind Info:-16 (-6.61%) : 54893.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+MissingTokenWithTrivia:SetDiagnostics(Microsoft.CodeAnalysis.DiagnosticInfo[]):Microsoft.CodeAnalysis.GreenNode:this (FullOpts)
@@ -26,8 +26,7 @@
; V15 tmp13 [V15,T05] ( 3, 6 ) byref -> rbx single-def "dup spill"
;* V16 tmp14 [V16 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
; V17 cse0 [V17,T10] ( 3, 3 ) int -> rdx "CSE #01: aggressive"
-; V18 cse1 [V18,T11] ( 3, 3 ) int -> rax "CSE #03: aggressive"
-; V19 cse2 [V19,T09] ( 3, 3 ) byref -> rbx "CSE #02: aggressive"
+; V18 cse1 [V18,T09] ( 3, 3 ) byref -> rbx "CSE #02: aggressive"
;
; Lcl frame size = 40
@@ -132,15 +131,10 @@ G_M59497_IG06: ; bbWeight=0.50, gcrefRegs=C000 {r14 r15}, byrefRegs=0008
; byrRegs -[rcx]
;; size=24 bbWeight=0.50 PerfScore 2.62
G_M59497_IG07: ; bbWeight=1, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, byref
- movzx rax, word ptr [rbx]
- mov ecx, eax
- and ecx, 0xF000
- and eax, 0xFFE
- or eax, ecx
- mov word ptr [rbx], ax
+ and word ptr [rbx], 0xFFFE
mov rax, r15
; gcrRegs +[rax]
- ;; size=24 bbWeight=1 PerfScore 4.25
+ ;; size=8 bbWeight=1 PerfScore 3.25
G_M59497_IG08: ; bbWeight=1, epilog, nogc, extend
add rsp, 40
pop rbx
@@ -160,7 +154,7 @@ G_M59497_IG09: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=C068 {
jmp G_M59497_IG03
;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 242, prolog size 12, PerfScore 47.25, instruction count 70, allocated bytes for code 242 (MethodHash=d2901796) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+MissingTokenWithTrivia:SetDiagnostics(Microsoft.CodeAnalysis.DiagnosticInfo[]):Microsoft.CodeAnalysis.GreenNode:this (FullOpts)
+; Total bytes of code 226, prolog size 12, PerfScore 46.25, instruction count 65, allocated bytes for code 226 (MethodHash=d2901796) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+MissingTokenWithTrivia:SetDiagnostics(Microsoft.CodeAnalysis.DiagnosticInfo[]):Microsoft.CodeAnalysis.GreenNode:this (FullOpts)
; ============================================================
Unwind Info:-16 (-6.61%) : 54894.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+MissingTokenWithTrivia:SetAnnotations(Microsoft.CodeAnalysis.SyntaxAnnotation[]):Microsoft.CodeAnalysis.GreenNode:this (FullOpts)
@@ -26,8 +26,7 @@
; V15 tmp13 [V15,T05] ( 3, 6 ) byref -> rbx single-def "dup spill"
;* V16 tmp14 [V16 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
; V17 cse0 [V17,T10] ( 3, 3 ) int -> rdx "CSE #01: aggressive"
-; V18 cse1 [V18,T11] ( 3, 3 ) int -> rax "CSE #03: aggressive"
-; V19 cse2 [V19,T09] ( 3, 3 ) byref -> rbx "CSE #02: aggressive"
+; V18 cse1 [V18,T09] ( 3, 3 ) byref -> rbx "CSE #02: aggressive"
;
; Lcl frame size = 40
@@ -132,15 +131,10 @@ G_M46254_IG06: ; bbWeight=0.50, gcrefRegs=C000 {r14 r15}, byrefRegs=0008
; byrRegs -[rcx]
;; size=24 bbWeight=0.50 PerfScore 2.62
G_M46254_IG07: ; bbWeight=1, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, byref
- movzx rax, word ptr [rbx]
- mov ecx, eax
- and ecx, 0xF000
- and eax, 0xFFE
- or eax, ecx
- mov word ptr [rbx], ax
+ and word ptr [rbx], 0xFFFE
mov rax, r15
; gcrRegs +[rax]
- ;; size=24 bbWeight=1 PerfScore 4.25
+ ;; size=8 bbWeight=1 PerfScore 3.25
G_M46254_IG08: ; bbWeight=1, epilog, nogc, extend
add rsp, 40
pop rbx
@@ -160,7 +154,7 @@ G_M46254_IG09: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=C068 {
jmp G_M46254_IG03
;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 242, prolog size 12, PerfScore 47.25, instruction count 70, allocated bytes for code 242 (MethodHash=ad084b51) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+MissingTokenWithTrivia:SetAnnotations(Microsoft.CodeAnalysis.SyntaxAnnotation[]):Microsoft.CodeAnalysis.GreenNode:this (FullOpts)
+; Total bytes of code 226, prolog size 12, PerfScore 46.25, instruction count 65, allocated bytes for code 226 (MethodHash=ad084b51) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+MissingTokenWithTrivia:SetAnnotations(Microsoft.CodeAnalysis.SyntaxAnnotation[]):Microsoft.CodeAnalysis.GreenNode:this (FullOpts)
; ============================================================
Unwind Info:-24 (-6.49%) : 72908.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.Parser:TryParseCrefReference():Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.CrefReferenceSyntax:this (FullOpts)
@@ -13,8 +13,8 @@
; V02 loc1 [V02,T09] ( 3, 2.50) ref -> rdi class-hnd <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.CrefSignatureSyntax>
; V03 loc2 [V03,T10] ( 3, 2.50) ref -> rbp class-hnd <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SimpleAsClauseSyntax>
; V04 loc3 [V04,T03] ( 4, 3.50) ref -> rax class-hnd exact single-def <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.CrefReferenceSyntax>
-; V05 loc4 [V05,T14] ( 2, 1 ) ref -> rbp class-hnd exact single-def <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.KeywordSyntax>
-; V06 loc5 [V06,T15] ( 2, 1 ) ref -> r9 class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.TypeSyntax>
+; V05 loc4 [V05,T13] ( 2, 1 ) ref -> rbp class-hnd exact single-def <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.KeywordSyntax>
+; V06 loc5 [V06,T14] ( 2, 1 ) ref -> r9 class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.TypeSyntax>
;* V07 loc6 [V07 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.GreenNode]>
; V08 OutArgs [V08 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <UNNAMED>
; V09 tmp1 [V09,T11] ( 2, 2 ) ref -> rcx class-hnd single-def "impAppendStmt" <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.ContextAwareSyntaxFactory>
@@ -29,9 +29,8 @@
; V18 tmp10 [V18,T05] ( 3, 3 ) byref -> rdx single-def "dup spill"
;* V19 tmp11 [V19 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V20 tmp12 [V20 ] ( 0, 0 ) ref -> zero-ref single-def "field V07._node (fldOffset=0x0)" P-INDEP
-; V21 cse0 [V21,T12] ( 3, 1.50) int -> rcx "CSE #01: moderate"
-; V22 rat0 [V22,T04] ( 4, 3.50) ref -> rbp "replacement local"
-; V23 rat1 [V23,T13] ( 3, 1 ) long -> rcx "CSE for expectedClsNode"
+; V21 rat0 [V21,T04] ( 4, 3.50) ref -> rbp "replacement local"
+; V22 rat1 [V22,T12] ( 3, 1 ) long -> rcx "CSE for expectedClsNode"
;
; Lcl frame size = 32
@@ -146,11 +145,11 @@ G_M13379_IG07: ; bbWeight=0.50, gcrefRegs=40C8 {rbx rsi rdi r14}, byrefRe
test rbp, rbp
je SHORT G_M13379_IG09
;; size=8 bbWeight=0.50 PerfScore 0.75
-G_M13379_IG08: ; bbWeight=0.25, gcrefRegs=40E8 {rbx rbp rsi rdi r14}, byrefRegs=0000 {}, byref
+G_M13379_IG08: ; bbWeight=0.25, gcrefRegs=40E8 {rbx rbp rsi rdi r14}, byrefRegs=0000 {}, byref, isz
mov rcx, 0xD1FFAB1E ; Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.KeywordSyntax
cmp qword ptr [rbp], rcx
- jne G_M13379_IG13
- ;; size=20 bbWeight=0.25 PerfScore 0.81
+ jne SHORT G_M13379_IG13
+ ;; size=16 bbWeight=0.25 PerfScore 0.81
G_M13379_IG09: ; bbWeight=0.50, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref
; gcrRegs -[r14]
xor edx, edx
@@ -206,13 +205,8 @@ G_M13379_IG10: ; bbWeight=1, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=
G_M13379_IG11: ; bbWeight=0.50, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref
lea rdx, bword ptr [rax+0x0E]
; byrRegs +[rdx]
- movzx rcx, word ptr [rdx]
- mov r8d, ecx
- and r8d, 0xF000
- and ecx, 0xF7F
- or ecx, r8d
- mov word ptr [rdx], cx
- ;; size=29 bbWeight=0.50 PerfScore 2.25
+ and word ptr [rdx], 0xFF7F
+ ;; size=9 bbWeight=0.50 PerfScore 1.75
G_M13379_IG12: ; bbWeight=1, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, epilog, nogc
; byrRegs -[rdx]
add rsp, 32
@@ -233,7 +227,7 @@ G_M13379_IG13: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=4000 {
int3
;; size=9 bbWeight=0 PerfScore 0.00
-; Total bytes of code 370, prolog size 10, PerfScore 68.44, instruction count 104, allocated bytes for code 370 (MethodHash=d148cbbc) for method Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.Parser:TryParseCrefReference():Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.CrefReferenceSyntax:this (FullOpts)
+; Total bytes of code 346, prolog size 10, PerfScore 67.94, instruction count 99, allocated bytes for code 346 (MethodHash=d148cbbc) for method Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.Parser:TryParseCrefReference():Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.CrefReferenceSyntax:this (FullOpts)
; ============================================================
Unwind Info:-17 (-6.42%) : 38232.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:TokenOrMissingToken(Microsoft.CodeAnalysis.GreenNode,ushort,System.String,Microsoft.CodeAnalysis.GreenNode):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (FullOpts)
@@ -14,16 +14,15 @@
; V03 arg3 [V03,T03] ( 6, 4 ) ref -> rsi class-hnd single-def <Microsoft.CodeAnalysis.GreenNode>
; V04 OutArgs [V04 ] ( 1, 1 ) struct (40) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <UNNAMED>
;* V05 tmp1 [V05 ] ( 0, 0 ) ref -> zero-ref single-def "spilling varStr"
-;* V06 tmp2 [V06,T09] ( 0, 0 ) int -> zero-ref "spilling unroll qmark"
+;* V06 tmp2 [V06,T08] ( 0, 0 ) int -> zero-ref "spilling unroll qmark"
; V07 tmp3 [V07,T00] ( 10, 10 ) ref -> rbp class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+MissingTokenWithTrivia>
;* V08 tmp4 [V08 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V09 tmp5 [V09,T05] ( 3, 3 ) byref -> rcx single-def "dup spill"
;* V10 tmp6 [V10 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
; V11 tmp7 [V11,T06] ( 3, 3 ) byref -> rax single-def "dup spill"
;* V12 tmp8 [V12 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-;* V13 cse0 [V13,T10] ( 0, 0 ) byref -> zero-ref "CSE #02: aggressive"
+;* V13 cse0 [V13,T09] ( 0, 0 ) byref -> zero-ref "CSE #02: aggressive"
; V14 cse1 [V14,T07] ( 3, 1.50) int -> rdx "CSE #03: aggressive"
-; V15 cse2 [V15,T08] ( 3, 1.50) int -> rdx "CSE #05: aggressive"
;
; Lcl frame size = 40
@@ -119,16 +118,11 @@ G_M48880_IG07: ; bbWeight=0.50, gcrefRegs=0060 {rbp rsi}, byrefRegs=0000
G_M48880_IG08: ; bbWeight=0.50, gcrefRegs=0020 {rbp}, byrefRegs=0000 {}, byref
lea rax, bword ptr [rbp+0x0E]
; byrRegs +[rax]
- movzx rdx, word ptr [rax]
- mov ecx, edx
- and ecx, 0xF000
- and edx, 0xFFE
- or edx, ecx
- mov word ptr [rax], dx
+ and word ptr [rax], 0xFFFE
mov rax, rbp
; gcrRegs +[rax]
; byrRegs -[rax]
- ;; size=29 bbWeight=0.50 PerfScore 2.38
+ ;; size=12 bbWeight=0.50 PerfScore 1.88
G_M48880_IG09: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 40
pop rbx
@@ -167,7 +161,7 @@ G_M48880_IG12: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0048 {
jmp G_M48880_IG06
;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 265, prolog size 8, PerfScore 27.56, instruction count 76, allocated bytes for code 265 (MethodHash=e9a5410f) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:TokenOrMissingToken(Microsoft.CodeAnalysis.GreenNode,ushort,System.String,Microsoft.CodeAnalysis.GreenNode):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (FullOpts)
+; Total bytes of code 248, prolog size 8, PerfScore 27.06, instruction count 71, allocated bytes for code 248 (MethodHash=e9a5410f) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:TokenOrMissingToken(Microsoft.CodeAnalysis.GreenNode,ushort,System.String,Microsoft.CodeAnalysis.GreenNode):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (FullOpts)
; ============================================================
Unwind Info:-16 (-6.40%) : 54891.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+MissingTokenWithTrivia:TokenWithLeadingTrivia(Microsoft.CodeAnalysis.GreenNode):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:this (FullOpts)
@@ -26,8 +26,7 @@
; V15 tmp13 [V15,T05] ( 3, 6 ) byref -> rbx single-def "dup spill"
;* V16 tmp14 [V16 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
; V17 cse0 [V17,T10] ( 3, 3 ) int -> rdx "CSE #01: aggressive"
-; V18 cse1 [V18,T11] ( 3, 3 ) int -> rax "CSE #03: aggressive"
-; V19 cse2 [V19,T09] ( 3, 3 ) byref -> rbx "CSE #02: aggressive"
+; V18 cse1 [V18,T09] ( 3, 3 ) byref -> rbx "CSE #02: aggressive"
;
; Lcl frame size = 40
@@ -136,15 +135,10 @@ G_M49748_IG06: ; bbWeight=0.50, gcrefRegs=8020 {rbp r15}, byrefRegs=0008
; byrRegs -[rcx]
;; size=24 bbWeight=0.50 PerfScore 2.62
G_M49748_IG07: ; bbWeight=1, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, byref
- movzx rax, word ptr [rbx]
- mov ecx, eax
- and ecx, 0xF000
- and eax, 0xFFE
- or eax, ecx
- mov word ptr [rbx], ax
+ and word ptr [rbx], 0xFFFE
mov rax, r15
; gcrRegs +[rax]
- ;; size=24 bbWeight=1 PerfScore 4.25
+ ;; size=8 bbWeight=1 PerfScore 3.25
G_M49748_IG08: ; bbWeight=1, epilog, nogc, extend
add rsp, 40
pop rbx
@@ -164,7 +158,7 @@ G_M49748_IG09: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=C068 {
jmp G_M49748_IG03
;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 250, prolog size 12, PerfScore 48.75, instruction count 72, allocated bytes for code 250 (MethodHash=241f3dab) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+MissingTokenWithTrivia:TokenWithLeadingTrivia(Microsoft.CodeAnalysis.GreenNode):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:this (FullOpts)
+; Total bytes of code 234, prolog size 12, PerfScore 47.75, instruction count 67, allocated bytes for code 234 (MethodHash=241f3dab) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+MissingTokenWithTrivia:TokenWithLeadingTrivia(Microsoft.CodeAnalysis.GreenNode):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:this (FullOpts)
; ============================================================
Unwind Info:-16 (-6.40%) : 54892.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+MissingTokenWithTrivia:TokenWithTrailingTrivia(Microsoft.CodeAnalysis.GreenNode):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:this (FullOpts)
@@ -26,8 +26,7 @@
; V15 tmp13 [V15,T05] ( 3, 6 ) byref -> rbx single-def "dup spill"
;* V16 tmp14 [V16 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
; V17 cse0 [V17,T10] ( 3, 3 ) int -> rdx "CSE #01: aggressive"
-; V18 cse1 [V18,T11] ( 3, 3 ) int -> rax "CSE #03: aggressive"
-; V19 cse2 [V19,T09] ( 3, 3 ) byref -> rbx "CSE #02: aggressive"
+; V18 cse1 [V18,T09] ( 3, 3 ) byref -> rbx "CSE #02: aggressive"
;
; Lcl frame size = 40
@@ -136,15 +135,10 @@ G_M22714_IG06: ; bbWeight=0.50, gcrefRegs=8040 {rsi r15}, byrefRegs=0008
; byrRegs -[rcx]
;; size=24 bbWeight=0.50 PerfScore 2.62
G_M22714_IG07: ; bbWeight=1, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, byref
- movzx rax, word ptr [rbx]
- mov ecx, eax
- and ecx, 0xF000
- and eax, 0xFFE
- or eax, ecx
- mov word ptr [rbx], ax
+ and word ptr [rbx], 0xFFFE
mov rax, r15
; gcrRegs +[rax]
- ;; size=24 bbWeight=1 PerfScore 4.25
+ ;; size=8 bbWeight=1 PerfScore 3.25
G_M22714_IG08: ; bbWeight=1, epilog, nogc, extend
add rsp, 40
pop rbx
@@ -164,7 +158,7 @@ G_M22714_IG09: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=C068 {
jmp G_M22714_IG03
;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 250, prolog size 12, PerfScore 48.75, instruction count 72, allocated bytes for code 250 (MethodHash=4f5ca745) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+MissingTokenWithTrivia:TokenWithTrailingTrivia(Microsoft.CodeAnalysis.GreenNode):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:this (FullOpts)
+; Total bytes of code 234, prolog size 12, PerfScore 47.75, instruction count 67, allocated bytes for code 234 (MethodHash=4f5ca745) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+MissingTokenWithTrivia:TokenWithTrailingTrivia(Microsoft.CodeAnalysis.GreenNode):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:this (FullOpts)
; ============================================================
Unwind Info:-10 (-6.25%) : 81634.dasm - Microsoft.CodeAnalysis.VisualBasic.Conversions:ClassifyDirectCastConversion(Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Binder,byref):int (FullOpts)
@@ -13,8 +13,8 @@
; V02 arg2 [V02,T03] ( 3, 2.50) ref -> rbp class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Binder>
; V03 arg3 [V03,T02] ( 4, 3 ) byref -> rdi single-def
; V04 loc0 [V04,T06] ( 4, 2.50) int -> rax
-; V05 loc1 [V05,T04] ( 6, 3 ) int -> rax
-; V06 loc2 [V06,T05] ( 5, 2.50) ref -> rbx class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol>
+; V05 loc1 [V05,T05] ( 5, 2.50) int -> rax
+; V06 loc2 [V06,T04] ( 5, 2.50) ref -> rbx class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol>
; V07 OutArgs [V07 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <UNNAMED>
;
; Lcl frame size = 40
@@ -70,13 +70,9 @@ G_M15230_IG04: ; bbWeight=0.50, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0
; gcrRegs -[rcx rdx rbp r8]
; byrRegs -[r9]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 3
- mov edx, eax
- and edx, 0xD1FFAB1E
- or ecx, edx
+ test eax, 0xD1FFAB1E
je SHORT G_M15230_IG06
- ;; size=35 bbWeight=0.50 PerfScore 3.12
+ ;; size=25 bbWeight=0.50 PerfScore 2.62
G_M15230_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rbx rsi]
; byrRegs -[rdi]
@@ -137,7 +133,7 @@ G_M15230_IG10: ; bbWeight=1, epilog, nogc, extend
ret
;; size=9 bbWeight=1 PerfScore 3.25
-; Total bytes of code 160, prolog size 8, PerfScore 34.88, instruction count 58, allocated bytes for code 160 (MethodHash=990ac481) for method Microsoft.CodeAnalysis.VisualBasic.Conversions:ClassifyDirectCastConversion(Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Binder,byref):int (FullOpts)
+; Total bytes of code 150, prolog size 8, PerfScore 34.38, instruction count 54, allocated bytes for code 150 (MethodHash=990ac481) for method Microsoft.CodeAnalysis.VisualBasic.Conversions:ClassifyDirectCastConversion(Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Binder,byref):int (FullOpts)
; ============================================================
Unwind Info:-10 (-6.25%) : 81636.dasm - Microsoft.CodeAnalysis.VisualBasic.Conversions:ClassifyTryCastConversion(Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Binder,byref):int (FullOpts)
@@ -13,8 +13,8 @@
; V02 arg2 [V02,T03] ( 3, 2.50) ref -> rbp class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Binder>
; V03 arg3 [V03,T02] ( 4, 3 ) byref -> rdi single-def
; V04 loc0 [V04,T06] ( 4, 2.50) int -> rax
-; V05 loc1 [V05,T04] ( 6, 3 ) int -> rax
-; V06 loc2 [V06,T05] ( 5, 2.50) ref -> rbx class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol>
+; V05 loc1 [V05,T05] ( 5, 2.50) int -> rax
+; V06 loc2 [V06,T04] ( 5, 2.50) ref -> rbx class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol>
; V07 OutArgs [V07 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <UNNAMED>
;
; Lcl frame size = 40
@@ -70,13 +70,9 @@ G_M14604_IG04: ; bbWeight=0.50, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0
; gcrRegs -[rcx rdx rbp r8]
; byrRegs -[r9]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 3
- mov edx, eax
- and edx, 0xD1FFAB1E
- or ecx, edx
+ test eax, 0xD1FFAB1E
je SHORT G_M14604_IG06
- ;; size=35 bbWeight=0.50 PerfScore 3.12
+ ;; size=25 bbWeight=0.50 PerfScore 2.62
G_M14604_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rbx rsi]
; byrRegs -[rdi]
@@ -137,7 +133,7 @@ G_M14604_IG10: ; bbWeight=1, epilog, nogc, extend
ret
;; size=9 bbWeight=1 PerfScore 3.25
-; Total bytes of code 160, prolog size 8, PerfScore 34.88, instruction count 58, allocated bytes for code 160 (MethodHash=9bbec6f3) for method Microsoft.CodeAnalysis.VisualBasic.Conversions:ClassifyTryCastConversion(Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Binder,byref):int (FullOpts)
+; Total bytes of code 150, prolog size 8, PerfScore 34.38, instruction count 54, allocated bytes for code 150 (MethodHash=9bbec6f3) for method Microsoft.CodeAnalysis.VisualBasic.Conversions:ClassifyTryCastConversion(Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Binder,byref):int (FullOpts)
; ============================================================
Unwind Info:-16 (-6.11%) : 28134.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxFactory:MissingToken(ushort):Microsoft.CodeAnalysis.SyntaxToken (FullOpts)
@@ -26,12 +26,11 @@
;* V15 tmp12 [V15 ] ( 0, 0 ) int -> zero-ref single-def "field V05.<Index>k__BackingField (fldOffset=0x10)" P-INDEP
;* V16 tmp13 [V16 ] ( 0, 0 ) int -> zero-ref single-def "field V05.<Position>k__BackingField (fldOffset=0x14)" P-INDEP
; V17 tmp14 [V17,T06] ( 4, 3 ) ref -> rdi "V02.[000..008)"
-;* V18 cse0 [V18,T11] ( 0, 0 ) byref -> zero-ref "CSE #02: aggressive"
-;* V19 cse1 [V19,T12] ( 0, 0 ) byref -> zero-ref "CSE #06: aggressive"
-; V20 cse2 [V20,T10] ( 2, 2 ) ref -> rdi "CSE #04: aggressive"
+;* V18 cse0 [V18,T10] ( 0, 0 ) byref -> zero-ref "CSE #02: aggressive"
+;* V19 cse1 [V19,T11] ( 0, 0 ) byref -> zero-ref "CSE #06: aggressive"
+; V20 cse2 [V20,T09] ( 2, 2 ) ref -> rdi "CSE #04: aggressive"
; V21 cse3 [V21,T08] ( 3, 3 ) int -> rdx "CSE #07: aggressive"
-; V22 cse4 [V22,T09] ( 3, 3 ) int -> rax "CSE #09: aggressive"
-; V23 cse5 [V23,T07] ( 3, 3 ) byref -> rsi "CSE #08: aggressive"
+; V22 cse4 [V22,T07] ( 3, 3 ) byref -> rsi "CSE #08: aggressive"
;
; Lcl frame size = 32
@@ -118,17 +117,12 @@ G_M50553_IG05: ; bbWeight=0.50, gcrefRegs=40A0 {rbp rdi r14}, byrefRegs=0
; byrRegs -[rcx]
;; size=48 bbWeight=0.50 PerfScore 5.25
G_M50553_IG06: ; bbWeight=1, gcrefRegs=4000 {r14}, byrefRegs=0040 {rsi}, byref
- movzx rax, word ptr [rsi]
- mov ecx, eax
- and ecx, 0xF000
- and eax, 0xFFE
- or eax, ecx
- mov word ptr [rsi], ax
+ and word ptr [rsi], 0xFFFE
xor rax, rax
; gcrRegs +[rax]
mov gword ptr [rbx], rax
mov gword ptr [rbx+0x08], r14
- ;; size=30 bbWeight=1 PerfScore 6.25
+ ;; size=14 bbWeight=1 PerfScore 5.25
G_M50553_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[rax r14]
; byrRegs -[rsi]
@@ -158,7 +152,7 @@ G_M50553_IG10: ; bbWeight=0, gcrefRegs=00A0 {rbp rdi}, byrefRegs=0000 {},
jmp G_M50553_IG04
;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 262, prolog size 10, PerfScore 42.75, instruction count 69, allocated bytes for code 262 (MethodHash=6ca03a86) for method Microsoft.CodeAnalysis.CSharp.SyntaxFactory:MissingToken(ushort):Microsoft.CodeAnalysis.SyntaxToken (FullOpts)
+; Total bytes of code 246, prolog size 10, PerfScore 41.75, instruction count 64, allocated bytes for code 246 (MethodHash=6ca03a86) for method Microsoft.CodeAnalysis.CSharp.SyntaxFactory:MissingToken(ushort):Microsoft.CodeAnalysis.SyntaxToken (FullOpts)
; ============================================================
Unwind Info:-24 (-4.35%) : 38326.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:<ParseInterpolation>g__getInterpolationCloseToken|444_2(Microsoft.CodeAnalysis.GreenNode,byref):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:this (FullOpts)
@@ -23,17 +23,17 @@
; V12 tmp4 [V12,T18] ( 3, 1.50) ref -> rdi class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken>
; V13 tmp5 [V13,T00] ( 14, 14.02) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.String>
;* V14 tmp6 [V14 ] ( 0, 0 ) ref -> zero-ref single-def "spilling varStr"
-;* V15 tmp7 [V15,T26] ( 0, 0 ) int -> zero-ref "spilling unroll qmark"
+;* V15 tmp7 [V15,T25] ( 0, 0 ) int -> zero-ref "spilling unroll qmark"
;* V16 tmp8 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken>
; V17 tmp9 [V17,T07] ( 7, 3.07) ref -> rdi class-hnd exact single-def "Inline stloc first use temp" <System.String>
-; V18 tmp10 [V18,T24] ( 2, 1 ) ubyte -> rax "Inline return value spill temp"
+; V18 tmp10 [V18,T23] ( 2, 1 ) ubyte -> rax "Inline return value spill temp"
; V19 tmp11 [V19,T15] ( 2, 2 ) byref -> rcx single-def "impAppendStmt"
;* V20 tmp12 [V20 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V21 tmp13 [V21 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V22 tmp14 [V22 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V23 tmp15 [V23 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V24 tmp16 [V24 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V25 tmp17 [V25,T25] ( 2, 1 ) ubyte -> rax "Inline return value spill temp"
+; V25 tmp17 [V25,T24] ( 2, 1 ) ubyte -> rax "Inline return value spill temp"
; V26 tmp18 [V26,T16] ( 2, 2 ) byref -> rcx single-def "impAppendStmt"
;* V27 tmp19 [V27 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V28 tmp20 [V28 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -53,11 +53,10 @@
; V42 tmp34 [V42,T12] ( 3, 3 ) int -> rdx single-def "field V03.<Start>k__BackingField (fldOffset=0x0)" P-INDEP
; V43 tmp35 [V43,T14] ( 3, 2 ) int -> r8 single-def "field V03.<End>k__BackingField (fldOffset=0x4)" P-INDEP
;* V44 tmp36 [V44 ] ( 0, 0 ) int -> zero-ref "field V07._value (fldOffset=0x0)" P-INDEP
-;* V45 cse0 [V45,T23] ( 0, 0 ) byref -> zero-ref multi-def "CSE #10: moderate"
+;* V45 cse0 [V45,T22] ( 0, 0 ) byref -> zero-ref multi-def "CSE #10: moderate"
; V46 cse1 [V46,T19] ( 3, 1.50) long -> rbp "CSE #07: moderate"
; V47 cse2 [V47,T20] ( 3, 1.50) int -> rdx "CSE #11: conservative"
; V48 cse3 [V48,T21] ( 3, 1.50) int -> rdx "CSE #12: conservative"
-; V49 cse4 [V49,T22] ( 3, 1.50) int -> rax "CSE #14: conservative"
;
; Lcl frame size = 40
@@ -100,15 +99,15 @@ G_M45816_IG03: ; bbWeight=1, gcrefRegs=000A {rcx rbx}, byrefRegs=0000 {},
cmp rsi, rcx
je SHORT G_M45816_IG06
;; size=33 bbWeight=1 PerfScore 5.50
-G_M45816_IG04: ; bbWeight=0.25, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+G_M45816_IG04: ; bbWeight=0.25, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax rcx]
test rsi, rsi
- je G_M45816_IG09
- ;; size=9 bbWeight=0.25 PerfScore 0.31
-G_M45816_IG05: ; bbWeight=0.12, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+ je SHORT G_M45816_IG09
+ ;; size=5 bbWeight=0.25 PerfScore 0.31
+G_M45816_IG05: ; bbWeight=0.12, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
cmp dword ptr [rsi+0x08], 0
- jne G_M45816_IG09
- ;; size=10 bbWeight=0.12 PerfScore 0.38
+ jne SHORT G_M45816_IG09
+ ;; size=6 bbWeight=0.12 PerfScore 0.38
G_M45816_IG06: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
; gcrRegs -[rsi]
test byte ptr [(reloc)], 1 ; global ptr
@@ -155,14 +154,9 @@ G_M45816_IG07: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
G_M45816_IG08: ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
lea rcx, bword ptr [rdi+0x0E]
; byrRegs +[rcx]
- movzx rax, word ptr [rcx]
- mov edx, eax
- and edx, 0xF000
- and eax, 0xFFE
- or eax, edx
- mov word ptr [rcx], ax
+ and word ptr [rcx], 0xFFFE
jmp G_M45816_IG18
- ;; size=30 bbWeight=0.50 PerfScore 3.25
+ ;; size=14 bbWeight=0.50 PerfScore 2.75
G_M45816_IG09: ; bbWeight=0.44, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rdi] +[rbx rsi]
; byrRegs -[rcx]
@@ -324,7 +318,7 @@ G_M45816_IG24: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
jmp G_M45816_IG07
;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 552, prolog size 8, PerfScore 64.13, instruction count 145, allocated bytes for code 552 (MethodHash=25554d07) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:<ParseInterpolation>g__getInterpolationCloseToken|444_2(Microsoft.CodeAnalysis.GreenNode,byref):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:this (FullOpts)
+; Total bytes of code 528, prolog size 8, PerfScore 63.63, instruction count 140, allocated bytes for code 528 (MethodHash=25554d07) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:<ParseInterpolation>g__getInterpolationCloseToken|444_2(Microsoft.CodeAnalysis.GreenNode,byref):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:this (FullOpts)
; ============================================================
Unwind Info:-16 (-4.05%) : 38570.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:ConvertToKeyword(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (FullOpts)
@@ -45,19 +45,18 @@
; V34 tmp30 [V34,T07] ( 3, 3 ) byref -> rcx single-def "dup spill"
;* V35 tmp31 [V35 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V36 tmp32 [V36 ] ( 0, 0 ) ref -> zero-ref "field V03._node (fldOffset=0x0)" P-INDEP
-; V37 tmp33 [V37,T19] ( 2, 1 ) ref -> r14 single-def "field V12._node (fldOffset=0x0)" P-INDEP
-; V38 tmp34 [V38,T20] ( 2, 1 ) ref -> r8 single-def "field V14._node (fldOffset=0x0)" P-INDEP
+; V37 tmp33 [V37,T18] ( 2, 1 ) ref -> r14 single-def "field V12._node (fldOffset=0x0)" P-INDEP
+; V38 tmp34 [V38,T19] ( 2, 1 ) ref -> r8 single-def "field V14._node (fldOffset=0x0)" P-INDEP
; V39 tmp35 [V39,T11] ( 4, 2 ) ref -> rdi single-def "field V18._node (fldOffset=0x0)" P-INDEP
; V40 tmp36 [V40,T12] ( 4, 2 ) ref -> rsi single-def "field V20._node (fldOffset=0x0)" P-INDEP
; V41 tmp37 [V41,T09] ( 3, 2.25) ref -> rax single-def "argument with side effect"
-;* V42 cse0 [V42,T21] ( 0, 0 ) byref -> zero-ref "CSE #06: moderate"
+;* V42 cse0 [V42,T20] ( 0, 0 ) byref -> zero-ref "CSE #06: moderate"
; V43 cse1 [V43,T04] ( 4, 3 ) long -> rbp "CSE #02: aggressive"
; V44 cse2 [V44,T03] ( 6, 3 ) long -> rsi multi-def "CSE #03: aggressive"
; V45 cse3 [V45,T16] ( 3, 1.50) int -> rdx "CSE #07: conservative"
-; V46 cse4 [V46,T17] ( 3, 1.50) int -> rax "CSE #09: conservative"
-; V47 cse5 [V47,T05] ( 4, 3 ) long -> rdi "CSE #01: aggressive"
-; V48 rat0 [V48,T02] ( 5, 3.75) ref -> rsi "replacement local"
-; V49 rat1 [V49,T18] ( 3, 1.25) long -> rcx "CSE for expectedClsNode"
+; V46 cse4 [V46,T05] ( 4, 3 ) long -> rdi "CSE #01: aggressive"
+; V47 rat0 [V47,T02] ( 5, 3.75) ref -> rsi "replacement local"
+; V48 rat1 [V48,T17] ( 3, 1.25) long -> rcx "CSE for expectedClsNode"
;
; Lcl frame size = 32
@@ -184,14 +183,9 @@ G_M12665_IG07: ; bbWeight=0.50, gcrefRegs=4048 {rbx rsi r14}, byrefRegs=0
G_M12665_IG08: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
lea rcx, bword ptr [r14+0x0E]
; byrRegs +[rcx]
- movzx rax, word ptr [rcx]
- mov edx, eax
- and edx, 0xF000
- and eax, 0xFFE
- or eax, edx
- mov word ptr [rcx], ax
+ and word ptr [rcx], 0xFFFE
jmp SHORT G_M12665_IG10
- ;; size=27 bbWeight=0.50 PerfScore 3.25
+ ;; size=11 bbWeight=0.50 PerfScore 2.75
G_M12665_IG09: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
; gcrRegs -[r14]
; byrRegs -[rcx]
@@ -290,7 +284,7 @@ G_M12665_IG15: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=00C8 {
jmp G_M12665_IG06
;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 395, prolog size 10, PerfScore 61.00, instruction count 120, allocated bytes for code 395 (MethodHash=b5e6ce86) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:ConvertToKeyword(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (FullOpts)
+; Total bytes of code 379, prolog size 10, PerfScore 60.50, instruction count 115, allocated bytes for code 379 (MethodHash=b5e6ce86) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:ConvertToKeyword(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (FullOpts)
; ============================================================
Unwind Info:-24 (-3.72%) : 38322.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:<ParseInterpolatedStringToken>g__getCloseQuote|438_5(byref):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:this (FullOpts)
@@ -18,7 +18,7 @@
;* V07 loc5 [V07 ] ( 0, 0 ) int -> zero-ref
;* V08 loc6 [V08 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.Index>
; V09 OutArgs [V09 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <UNNAMED>
-; V10 tmp1 [V10,T30] ( 3, 0 ) ref -> rax class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
+; V10 tmp1 [V10,T29] ( 3, 0 ) ref -> rax class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
; V11 tmp2 [V11,T06] ( 3, 6 ) ref -> rcx class-hnd exact single-def "impAppendStmt" <System.String>
; V12 tmp3 [V12,T00] ( 14, 14.14) ref -> rdi class-hnd exact single-def "non-inline candidate call" <System.String>
; V13 tmp4 [V13,T05] ( 6, 6 ) int -> r10 "Inline stloc first use temp"
@@ -26,17 +26,17 @@
; V15 tmp6 [V15,T21] ( 3, 1.50) ref -> rbp class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken>
; V16 tmp7 [V16,T03] ( 8, 9 ) ref -> rbx class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.GreenNode>
;* V17 tmp8 [V17 ] ( 0, 0 ) ref -> zero-ref single-def "spilling varStr"
-;* V18 tmp9 [V18,T29] ( 0, 0 ) int -> zero-ref "spilling unroll qmark"
+;* V18 tmp9 [V18,T28] ( 0, 0 ) int -> zero-ref "spilling unroll qmark"
;* V19 tmp10 [V19 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken>
; V20 tmp11 [V20,T10] ( 7, 3.20) ref -> rbp class-hnd exact single-def "Inline stloc first use temp" <System.String>
-; V21 tmp12 [V21,T27] ( 2, 1 ) ubyte -> rax "Inline return value spill temp"
+; V21 tmp12 [V21,T26] ( 2, 1 ) ubyte -> rax "Inline return value spill temp"
; V22 tmp13 [V22,T18] ( 2, 2 ) byref -> rcx single-def "impAppendStmt"
;* V23 tmp14 [V23 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V24 tmp15 [V24 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V25 tmp16 [V25 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V26 tmp17 [V26 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V27 tmp18 [V27 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V28 tmp19 [V28,T28] ( 2, 1 ) ubyte -> rax "Inline return value spill temp"
+; V28 tmp19 [V28,T27] ( 2, 1 ) ubyte -> rax "Inline return value spill temp"
; V29 tmp20 [V29,T19] ( 2, 2 ) byref -> rcx single-def "impAppendStmt"
;* V30 tmp21 [V30 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V31 tmp22 [V31 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -57,12 +57,11 @@
; V46 tmp37 [V46,T17] ( 3, 2 ) int -> rdx single-def "field V04.<End>k__BackingField (fldOffset=0x4)" P-INDEP
;* V47 tmp38 [V47 ] ( 0, 0 ) int -> zero-ref "field V08._value (fldOffset=0x0)" P-INDEP
; V48 tmp39 [V48,T07] ( 3, 6 ) ref -> rcx single-def "argument with side effect"
-;* V49 cse0 [V49,T26] ( 0, 0 ) byref -> zero-ref multi-def "CSE #11: moderate"
+;* V49 cse0 [V49,T25] ( 0, 0 ) byref -> zero-ref multi-def "CSE #11: moderate"
; V50 cse1 [V50,T22] ( 3, 1.50) long -> r14 "CSE #08: moderate"
; V51 cse2 [V51,T23] ( 3, 1.50) int -> rdx "CSE #12: conservative"
; V52 cse3 [V52,T24] ( 3, 1.50) int -> rdx "CSE #13: conservative"
-; V53 cse4 [V53,T25] ( 3, 1.50) int -> rax "CSE #15: conservative"
-; V54 rat0 [V54,T08] ( 3, 5.60) int -> r8 "ReplaceWithLclVar is creating a new local variable"
+; V53 rat0 [V53,T08] ( 3, 5.60) int -> r8 "ReplaceWithLclVar is creating a new local variable"
;
; Lcl frame size = 32
@@ -131,15 +130,15 @@ G_M51556_IG07: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0008 {rbx},
cmp rdi, rcx
je SHORT G_M51556_IG10
;; size=47 bbWeight=1 PerfScore 14.50
-G_M51556_IG08: ; bbWeight=0.25, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
+G_M51556_IG08: ; bbWeight=0.25, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rax rcx]
test rdi, rdi
- je G_M51556_IG13
- ;; size=9 bbWeight=0.25 PerfScore 0.31
-G_M51556_IG09: ; bbWeight=0.12, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
+ je SHORT G_M51556_IG13
+ ;; size=5 bbWeight=0.25 PerfScore 0.31
+G_M51556_IG09: ; bbWeight=0.12, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
cmp dword ptr [rdi+0x08], 0
- jne G_M51556_IG13
- ;; size=10 bbWeight=0.12 PerfScore 0.38
+ jne SHORT G_M51556_IG13
+ ;; size=6 bbWeight=0.12 PerfScore 0.38
G_M51556_IG10: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
; gcrRegs -[rdi]
test byte ptr [(reloc)], 1 ; global ptr
@@ -186,14 +185,9 @@ G_M51556_IG11: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
G_M51556_IG12: ; bbWeight=0.50, gcrefRegs=0020 {rbp}, byrefRegs=0000 {}, byref
lea rcx, bword ptr [rbp+0x0E]
; byrRegs +[rcx]
- movzx rax, word ptr [rcx]
- mov edx, eax
- and edx, 0xF000
- and eax, 0xFFE
- or eax, edx
- mov word ptr [rcx], ax
+ and word ptr [rcx], 0xFFFE
jmp G_M51556_IG22
- ;; size=30 bbWeight=0.50 PerfScore 3.25
+ ;; size=14 bbWeight=0.50 PerfScore 2.75
G_M51556_IG13: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rbp] +[rbx rdi]
; byrRegs -[rcx]
@@ -383,7 +377,7 @@ G_M51556_IG29: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
jmp G_M51556_IG11
;; size=20 bbWeight=0 PerfScore 0.00
-; Total bytes of code 645, prolog size 10, PerfScore 81.45, instruction count 172, allocated bytes for code 645 (MethodHash=718b369b) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:<ParseInterpolatedStringToken>g__getCloseQuote|438_5(byref):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:this (FullOpts)
+; Total bytes of code 621, prolog size 10, PerfScore 80.95, instruction count 167, allocated bytes for code 621 (MethodHash=718b369b) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:<ParseInterpolatedStringToken>g__getCloseQuote|438_5(byref):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:this (FullOpts)
; ============================================================
Unwind Info:-43 (-3.21%) : 39518.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:.cctor() (FullOpts)
@@ -15,7 +15,7 @@
;* V04 tmp3 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewArr temp" <<unknown class>>
;* V05 tmp4 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewArr temp" <<unknown class>>
;* V06 tmp5 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewArr temp" <<unknown class>>
-; V07 tmp6 [V07,T36] ( 6, 12 ) ref -> rax class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+MissingTokenWithTrivia>
+; V07 tmp6 [V07,T35] ( 6, 12 ) ref -> rax class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+MissingTokenWithTrivia>
; V08 tmp7 [V08,T04] ( 6, 96 ) ref -> r12 class-hnd exact "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken>
; V09 tmp8 [V09,T22] ( 2, 32 ) byref -> [rsp+0x68] spill-single-def "impAppendStmt"
; V10 tmp9 [V10,T01] ( 13,112 ) ref -> [rsp+0x60] class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+SyntaxTokenWithTrivia>
@@ -27,9 +27,9 @@
; V16 tmp15 [V16,T05] ( 5, 80 ) ref -> rax class-hnd exact "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+MissingTokenWithTrivia>
; V17 tmp16 [V17,T26] ( 2, 32 ) byref -> rcx "impAppendStmt"
;* V18 tmp17 [V18 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V19 tmp18 [V19,T53] ( 3, 6 ) byref -> rcx single-def "dup spill"
+; V19 tmp18 [V19,T52] ( 3, 6 ) byref -> rcx single-def "dup spill"
;* V20 tmp19 [V20 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-; V21 tmp20 [V21,T54] ( 3, 6 ) byref -> rcx single-def "dup spill"
+; V21 tmp20 [V21,T53] ( 3, 6 ) byref -> rcx single-def "dup spill"
;* V22 tmp21 [V22 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V23 tmp22 [V23 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V24 tmp23 [V24,T06] ( 3, 48 ) byref -> rcx "dup spill"
@@ -40,28 +40,28 @@
; V29 tmp28 [V29,T07] ( 3, 48 ) byref -> rcx "dup spill"
;* V30 tmp29 [V30 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V31 tmp30 [V31 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V32 tmp31 [V32,T37] ( 3, 12 ) byref -> rdx "dup spill"
-; V33 tmp32 [V33,T47] ( 2, 8 ) ushort -> rcx "Inlining Arg"
+; V32 tmp31 [V32,T36] ( 3, 12 ) byref -> rdx "dup spill"
+; V33 tmp32 [V33,T46] ( 2, 8 ) ushort -> rcx "Inlining Arg"
;* V34 tmp33 [V34 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V35 tmp34 [V35 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V36 tmp35 [V36,T38] ( 3, 12 ) byref -> rdx "dup spill"
-; V37 tmp36 [V37,T48] ( 2, 8 ) ushort -> rcx "Inlining Arg"
+; V36 tmp35 [V36,T37] ( 3, 12 ) byref -> rdx "dup spill"
+; V37 tmp36 [V37,T47] ( 2, 8 ) ushort -> rcx "Inlining Arg"
;* V38 tmp37 [V38 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
; V39 tmp38 [V39,T18] ( 5, 44 ) ref -> [rsp+0x28] class-hnd spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxTrivia>
;* V40 tmp39 [V40 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V41 tmp40 [V41,T08] ( 3, 48 ) byref -> rcx "dup spill"
;* V42 tmp41 [V42 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V43 tmp42 [V43 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V44 tmp43 [V44,T39] ( 3, 12 ) byref -> rdx "dup spill"
-; V45 tmp44 [V45,T49] ( 2, 8 ) ushort -> rcx "Inlining Arg"
+; V44 tmp43 [V44,T38] ( 3, 12 ) byref -> rdx "dup spill"
+; V45 tmp44 [V45,T48] ( 2, 8 ) ushort -> rcx "Inlining Arg"
;* V46 tmp45 [V46 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
; V47 tmp46 [V47,T19] ( 5, 44 ) ref -> [rsp+0x20] class-hnd spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxTrivia>
;* V48 tmp47 [V48 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V49 tmp48 [V49,T09] ( 3, 48 ) byref -> rcx "dup spill"
;* V50 tmp49 [V50 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V51 tmp50 [V51 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V52 tmp51 [V52,T40] ( 3, 12 ) byref -> rdx "dup spill"
-; V53 tmp52 [V53,T50] ( 2, 8 ) ushort -> rcx "Inlining Arg"
+; V52 tmp51 [V52,T39] ( 3, 12 ) byref -> rdx "dup spill"
+; V53 tmp52 [V53,T49] ( 2, 8 ) ushort -> rcx "Inlining Arg"
;* V54 tmp53 [V54 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V55 tmp54 [V55 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V56 tmp55 [V56,T10] ( 3, 48 ) byref -> r8 "dup spill"
@@ -73,30 +73,28 @@
; V62 tmp61 [V62,T14] ( 3, 48 ) ref -> rcx "arr expr"
; V63 tmp62 [V63,T15] ( 3, 48 ) ref -> rcx "arr expr"
; V64 tmp63 [V64,T16] ( 3, 48 ) ref -> rcx "arr expr"
-; V65 cse0 [V65,T28] ( 3, 24 ) ref -> r8 "CSE #13: moderate"
-;* V66 cse1 [V66,T51] ( 0, 0 ) byref -> zero-ref "CSE #10: moderate"
-; V67 cse2 [V67,T20] ( 5, 40 ) int -> [rsp+0x74] spill-single-def "CSE #14: moderate"
-; V68 cse3 [V68,T30] ( 3, 24 ) int -> rdx "CSE #06: moderate"
-; V69 cse4 [V69,T31] ( 3, 24 ) int -> rdx "CSE #15: moderate"
-; V70 cse5 [V70,T32] ( 3, 24 ) int -> rdx "CSE #21: moderate"
-; V71 cse6 [V71,T33] ( 3, 24 ) int -> rdx "CSE #25: moderate"
-; V72 cse7 [V72,T34] ( 3, 24 ) int -> r10 "CSE #30: moderate"
-; V73 cse8 [V73,T35] ( 3, 24 ) int -> r8 "CSE #32: moderate"
-; V74 cse9 [V74,T55] ( 3, 6 ) int -> r8 "CSE #17: moderate"
-; V75 cse10 [V75,T56] ( 3, 6 ) int -> r10 "CSE #18: moderate"
-; V76 cse11 [V76,T57] ( 3, 6 ) int -> r10 "CSE #23: moderate"
-; V77 cse12 [V77,T58] ( 3, 6 ) int -> r8 "CSE #27: moderate"
-; V78 cse13 [V78,T59] ( 3, 3 ) int -> rdx "CSE #02: moderate"
-; V79 cse14 [V79,T60] ( 3, 3 ) int -> rdx "CSE #04: moderate"
-; V80 cse15 [V80,T21] ( 4, 32 ) long -> r12 "CSE #19: moderate"
-; V81 cse16 [V81,T41] ( 3, 10 ) long -> rsi "CSE #05: moderate"
-; V82 cse17 [V82,T42] ( 3, 10 ) long -> rdi "CSE #07: moderate"
-; V83 cse18 [V83,T43] ( 3, 10 ) long -> rbp "CSE #20: moderate"
-; V84 cse19 [V84,T44] ( 3, 10 ) long -> r14 "CSE #24: moderate"
-; V85 cse20 [V85,T45] ( 3, 10 ) long -> r15 "CSE #28: moderate"
-; V86 cse21 [V86,T46] ( 3, 10 ) long -> rbx "CSE #29: moderate"
-; V87 cse22 [V87,T29] ( 3, 24 ) byref -> rdx "CSE #31: moderate"
-; V88 cse23 [V88,T52] ( 6, 6 ) long -> rbx "CSE #01: moderate"
+; V65 cse0 [V65,T28] ( 3, 24 ) ref -> r8 "CSE #12: moderate"
+;* V66 cse1 [V66,T50] ( 0, 0 ) byref -> zero-ref "CSE #09: moderate"
+; V67 cse2 [V67,T20] ( 5, 40 ) int -> [rsp+0x74] spill-single-def "CSE #13: moderate"
+; V68 cse3 [V68,T30] ( 3, 24 ) int -> rdx "CSE #05: moderate"
+; V69 cse4 [V69,T31] ( 3, 24 ) int -> rdx "CSE #14: moderate"
+; V70 cse5 [V70,T32] ( 3, 24 ) int -> rdx "CSE #20: moderate"
+; V71 cse6 [V71,T33] ( 3, 24 ) int -> rdx "CSE #24: moderate"
+; V72 cse7 [V72,T34] ( 3, 24 ) int -> r10 "CSE #29: moderate"
+; V73 cse8 [V73,T54] ( 3, 6 ) int -> r8 "CSE #16: moderate"
+; V74 cse9 [V74,T55] ( 3, 6 ) int -> r10 "CSE #17: moderate"
+; V75 cse10 [V75,T56] ( 3, 6 ) int -> r10 "CSE #22: moderate"
+; V76 cse11 [V76,T57] ( 3, 6 ) int -> r8 "CSE #26: moderate"
+; V77 cse12 [V77,T58] ( 3, 3 ) int -> rdx "CSE #02: moderate"
+; V78 cse13 [V78,T21] ( 4, 32 ) long -> r12 "CSE #18: moderate"
+; V79 cse14 [V79,T40] ( 3, 10 ) long -> rsi "CSE #04: moderate"
+; V80 cse15 [V80,T41] ( 3, 10 ) long -> rdi "CSE #06: moderate"
+; V81 cse16 [V81,T42] ( 3, 10 ) long -> rbp "CSE #19: moderate"
+; V82 cse17 [V82,T43] ( 3, 10 ) long -> r14 "CSE #23: moderate"
+; V83 cse18 [V83,T44] ( 3, 10 ) long -> r15 "CSE #27: moderate"
+; V84 cse19 [V84,T45] ( 3, 10 ) long -> rbx "CSE #28: moderate"
+; V85 cse20 [V85,T29] ( 3, 24 ) byref -> rdx "CSE #30: moderate"
+; V86 cse21 [V86,T51] ( 6, 6 ) long -> rbx "CSE #01: moderate"
;
; Lcl frame size = 120
@@ -186,23 +184,16 @@ G_M32365_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
or edx, 1
mov word ptr [rcx], dx
lea rcx, bword ptr [rax+0x0E]
- movzx rdx, word ptr [rcx]
- mov r8d, edx
- and r8d, 0xF000
- and edx, 0xFFE
- or edx, r8d
- mov word ptr [rcx], dx
+ and word ptr [rcx], 0xFFFE
mov rcx, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
; byrRegs -[rcx]
mov rdx, rax
; gcrRegs +[rdx]
call CORINFO_HELP_ASSIGN_REF
; gcrRegs -[rax rdx]
- ;; size=288 bbWeight=1 PerfScore 31.00
-G_M32365_IG03: ; bbWeight=1, extend
mov r13d, 0x2001
- ;; size=6 bbWeight=1 PerfScore 0.25
-G_M32365_IG04: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ;; size=274 bbWeight=1 PerfScore 30.25
+G_M32365_IG03: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rcx, 0xD1FFAB1E ; Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken
call CORINFO_HELP_NEWSFAST
; gcrRegs +[rax]
@@ -212,7 +203,7 @@ G_M32365_IG04: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rcx, gword ptr [rsi]
; gcrRegs +[rcx]
cmp r13d, dword ptr [rcx+0x08]
- jae G_M32365_IG14
+ jae G_M32365_IG13
mov eax, r13d
; gcrRegs -[rax]
lea rax, bword ptr [rcx+8*rax+0x10]
@@ -257,16 +248,16 @@ G_M32365_IG04: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rcx, gword ptr [rdi]
; gcrRegs +[rcx]
cmp r13d, dword ptr [rcx+0x08]
- jae G_M32365_IG14
+ jae G_M32365_IG13
mov edx, r13d
lea rdx, bword ptr [rcx+8*rdx+0x10]
; byrRegs +[rdx]
mov bword ptr [rsp+0x58], rdx
; GC ptr vars +{V11}
test byte ptr [(reloc)], 1 ; global ptr
- je G_M32365_IG13
+ je G_M32365_IG12
;; size=180 bbWeight=8 PerfScore 310.00
-G_M32365_IG05: ; bbWeight=8, gcVars=0000000000800002 {V10 V11}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M32365_IG04: ; bbWeight=8, gcVars=0000000000800002 {V10 V11}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rax rcx]
; byrRegs -[rdx]
mov rcx, 0xD1FFAB1E ; data for Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxFactory:ElasticZeroSpace
@@ -298,9 +289,9 @@ G_M32365_IG05: ; bbWeight=8, gcVars=0000000000800002 {V10 V11}, gcrefRegs
mov r10, gword ptr [rsp+0x38]
; gcrRegs +[r10]
test r10, r10
- je G_M32365_IG07
+ je G_M32365_IG06
;; size=100 bbWeight=8 PerfScore 170.00
-G_M32365_IG06: ; bbWeight=2, gcrefRegs=0401 {rax r10}, byrefRegs=0000 {}, byref
+G_M32365_IG05: ; bbWeight=2, gcrefRegs=0401 {rax r10}, byrefRegs=0000 {}, byref
; byrRegs -[rcx]
movzx rcx, word ptr [r10+0x0E]
and ecx, 0x7E1
@@ -355,7 +346,7 @@ G_M32365_IG06: ; bbWeight=2, gcrefRegs=0401 {rax r10}, byrefRegs=0000 {},
mov rax, gword ptr [rsp+0x60]
; gcrRegs +[rax]
;; size=149 bbWeight=2 PerfScore 62.00
-G_M32365_IG07: ; bbWeight=8, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, isz
+G_M32365_IG06: ; bbWeight=8, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, isz
mov rcx, bword ptr [rsp+0x58]
; byrRegs +[rcx]
mov rdx, rax
@@ -373,7 +364,7 @@ G_M32365_IG07: ; bbWeight=8, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byr
mov rcx, gword ptr [rbp]
; gcrRegs +[rcx]
cmp r13d, dword ptr [rcx+0x08]
- jae G_M32365_IG14
+ jae G_M32365_IG13
mov edx, r13d
lea rdx, bword ptr [rcx+8*rdx+0x10]
; byrRegs +[rdx]
@@ -406,9 +397,9 @@ G_M32365_IG07: ; bbWeight=8, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byr
mov r8, gword ptr [rsp+0x28]
; gcrRegs +[r8]
test r8, r8
- je SHORT G_M32365_IG09
+ je SHORT G_M32365_IG08
;; size=139 bbWeight=8 PerfScore 248.00
-G_M32365_IG08: ; bbWeight=2, gcrefRegs=0101 {rax r8}, byrefRegs=0000 {}, byref
+G_M32365_IG07: ; bbWeight=2, gcrefRegs=0101 {rax r8}, byrefRegs=0000 {}, byref
; byrRegs -[rcx]
movzx rcx, word ptr [r8+0x0E]
and ecx, 0x7E1
@@ -436,7 +427,7 @@ G_M32365_IG08: ; bbWeight=2, gcrefRegs=0101 {rax r8}, byrefRegs=0000 {},
mov rax, gword ptr [rsp+0x50]
; gcrRegs +[rax]
;; size=72 bbWeight=2 PerfScore 30.00
-G_M32365_IG09: ; bbWeight=8, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, isz
+G_M32365_IG08: ; bbWeight=8, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, isz
mov rcx, bword ptr [rsp+0x48]
; byrRegs +[rcx]
mov rdx, rax
@@ -454,7 +445,7 @@ G_M32365_IG09: ; bbWeight=8, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byr
mov rcx, gword ptr [r14]
; gcrRegs +[rcx]
cmp r13d, dword ptr [rcx+0x08]
- jae G_M32365_IG14
+ jae G_M32365_IG13
mov eax, r13d
; gcrRegs -[rax]
lea rax, bword ptr [rcx+8*rax+0x10]
@@ -488,9 +479,9 @@ G_M32365_IG09: ; bbWeight=8, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byr
mov rax, gword ptr [rsp+0x20]
; gcrRegs +[rax]
test rax, rax
- je SHORT G_M32365_IG11
+ je SHORT G_M32365_IG10
;; size=131 bbWeight=8 PerfScore 234.00
-G_M32365_IG10: ; bbWeight=2, gcrefRegs=1001 {rax r12}, byrefRegs=0000 {}, byref
+G_M32365_IG09: ; bbWeight=2, gcrefRegs=1001 {rax r12}, byrefRegs=0000 {}, byref
; byrRegs -[rcx]
movzx rcx, word ptr [rax+0x0E]
and ecx, 0x7E1
@@ -516,7 +507,7 @@ G_M32365_IG10: ; bbWeight=2, gcrefRegs=1001 {rax r12}, byrefRegs=0000 {},
; gcrRegs -[rax rdx]
; byrRegs -[rcx]
;; size=69 bbWeight=2 PerfScore 28.00
-G_M32365_IG11: ; bbWeight=8, gcrefRegs=1000 {r12}, byrefRegs=0000 {}, byref
+G_M32365_IG10: ; bbWeight=8, gcrefRegs=1000 {r12}, byrefRegs=0000 {}, byref
mov rcx, bword ptr [rsp+0x40]
; byrRegs +[rcx]
mov rdx, r12
@@ -532,7 +523,7 @@ G_M32365_IG11: ; bbWeight=8, gcrefRegs=1000 {r12}, byrefRegs=0000 {}, byr
mov rcx, gword ptr [rbx]
; gcrRegs +[rcx]
cmp r13d, dword ptr [rcx+0x08]
- jae G_M32365_IG14
+ jae G_M32365_IG13
mov edx, r13d
lea rcx, bword ptr [rcx+8*rdx+0x10]
; gcrRegs -[rcx]
@@ -551,25 +542,19 @@ G_M32365_IG11: ; bbWeight=8, gcrefRegs=1000 {r12}, byrefRegs=0000 {}, byr
or r10d, r9d
or r10d, 1
mov word ptr [r8], r10w
- movzx r8, word ptr [rdx]
- ; byrRegs -[r8]
- mov r10d, r8d
- and r10d, 0xF000
- and r8d, 0xFFE
- or r8d, r10d
- mov word ptr [rdx], r8w
+ and word ptr [rdx], 0xFFFE
mov rdx, rax
; gcrRegs +[rdx]
; byrRegs -[rdx]
call CORINFO_HELP_ASSIGN_REF
; gcrRegs -[rax rdx]
- ; byrRegs -[rcx]
+ ; byrRegs -[rcx r8]
inc r13d
movzx r13, r13w
cmp r13d, 0x2130
- jle G_M32365_IG04
- ;; size=147 bbWeight=8 PerfScore 192.00
-G_M32365_IG12: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+ jle G_M32365_IG03
+ ;; size=124 bbWeight=8 PerfScore 184.00
+G_M32365_IG11: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
add rsp, 120
pop rbx
pop rbp
@@ -581,21 +566,21 @@ G_M32365_IG12: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
pop r15
ret
;; size=17 bbWeight=1 PerfScore 5.25
-G_M32365_IG13: ; bbWeight=0, gcVars=0000000000800002 {V10 V11}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M32365_IG12: ; bbWeight=0, gcVars=0000000000800002 {V10 V11}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; GC ptr vars +{V10 V11}
mov rcx, 0xD1FFAB1E ; Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxFactory
call CORINFO_HELP_GET_GCSTATIC_BASE
; gcr arg pop 0
- jmp G_M32365_IG05
+ jmp G_M32365_IG04
;; size=20 bbWeight=0 PerfScore 0.00
-G_M32365_IG14: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M32365_IG13: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; GC ptr vars -{V10 V11}
call CORINFO_HELP_RNGCHKFAIL
; gcr arg pop 0
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1340, prolog size 16, PerfScore 1318.75, instruction count 311, allocated bytes for code 1340 (MethodHash=55c88192) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:.cctor() (FullOpts)
+; Total bytes of code 1297, prolog size 16, PerfScore 1309.75, instruction count 301, allocated bytes for code 1297 (MethodHash=55c88192) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:.cctor() (FullOpts)
; ============================================================
Unwind Info:-17 (-2.27%) : 39457.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:Create(ushort,Microsoft.CodeAnalysis.GreenNode,Microsoft.CodeAnalysis.GreenNode):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (FullOpts)
@@ -13,9 +13,9 @@
; V02 arg2 [V02,T02] ( 12, 7 ) ref -> rbx class-hnd single-def <Microsoft.CodeAnalysis.GreenNode>
; V03 OutArgs [V03 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <UNNAMED>
; V04 tmp1 [V04,T00] ( 10, 10 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+SyntaxTokenWithTrivia>
-; V05 tmp2 [V05,T19] ( 3, 0 ) ref -> rbx class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
-; V06 tmp3 [V06,T21] ( 2, 0 ) ref -> rsi class-hnd exact single-def "impImportAndPushBox" <System.String>
-; V07 tmp4 [V07,T20] ( 3, 0 ) ref -> rdi class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+; V05 tmp2 [V05,T18] ( 3, 0 ) ref -> rbx class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
+; V06 tmp3 [V06,T20] ( 2, 0 ) ref -> rsi class-hnd exact single-def "impImportAndPushBox" <System.String>
+; V07 tmp4 [V07,T19] ( 3, 0 ) ref -> rdi class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
; V08 tmp5 [V08,T01] ( 10, 10 ) ref -> rbp class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+MissingTokenWithTrivia>
;* V09 tmp6 [V09 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V10 tmp7 [V10,T07] ( 3, 3 ) byref -> rcx single-def "dup spill"
@@ -30,13 +30,12 @@
; V19 tmp16 [V19,T11] ( 3, 3 ) ref -> rcx single-def "arr expr"
; V20 tmp17 [V20,T12] ( 3, 3 ) ref -> rcx single-def "arr expr"
; V21 tmp18 [V21,T13] ( 3, 3 ) ref -> rcx single-def "arr expr"
-; V22 tmp19 [V22,T22] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
-; V23 cse0 [V23,T14] ( 3, 1.50) ref -> rcx "CSE #10: moderate"
-;* V24 cse1 [V24,T18] ( 0, 0 ) byref -> zero-ref multi-def "CSE #07: moderate"
+; V22 tmp19 [V22,T21] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V23 cse0 [V23,T14] ( 3, 1.50) ref -> rcx "CSE #09: moderate"
+;* V24 cse1 [V24,T17] ( 0, 0 ) byref -> zero-ref multi-def "CSE #06: moderate"
; V25 cse2 [V25,T15] ( 3, 1.50) int -> rdx "CSE #02: moderate"
-; V26 cse3 [V26,T16] ( 3, 1.50) int -> rcx "CSE #04: moderate"
-; V27 cse4 [V27,T17] ( 3, 1.50) int -> rdx "CSE #11: moderate"
-; V28 cse5 [V28,T05] ( 11, 6.50) int -> rbp "CSE #01: aggressive"
+; V26 cse3 [V26,T16] ( 3, 1.50) int -> rdx "CSE #10: moderate"
+; V27 cse4 [V27,T05] ( 11, 6.50) int -> rbp "CSE #01: aggressive"
;
; Lcl frame size = 32
@@ -269,16 +268,11 @@ G_M22584_IG16: ; bbWeight=0.50, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000
G_M22584_IG17: ; bbWeight=0.50, gcrefRegs=0020 {rbp}, byrefRegs=0000 {}, byref
lea rax, bword ptr [rbp+0x0E]
; byrRegs +[rax]
- movzx rcx, word ptr [rax]
- mov edx, ecx
- and edx, 0xF000
- and ecx, 0xFFE
- or ecx, edx
- mov word ptr [rax], cx
+ and word ptr [rax], 0xFFFE
mov rax, rbp
; gcrRegs +[rax]
; byrRegs -[rax]
- ;; size=29 bbWeight=0.50 PerfScore 2.38
+ ;; size=12 bbWeight=0.50 PerfScore 1.88
G_M22584_IG18: ; bbWeight=1, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, epilog, nogc
; gcrRegs -[rbp]
add rsp, 32
@@ -357,7 +351,7 @@ G_M22584_IG23: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 749, prolog size 10, PerfScore 73.75, instruction count 175, allocated bytes for code 749 (MethodHash=d91fa7c7) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:Create(ushort,Microsoft.CodeAnalysis.GreenNode,Microsoft.CodeAnalysis.GreenNode):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (FullOpts)
+; Total bytes of code 732, prolog size 10, PerfScore 73.25, instruction count 170, allocated bytes for code 732 (MethodHash=d91fa7c7) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:Create(ushort,Microsoft.CodeAnalysis.GreenNode,Microsoft.CodeAnalysis.GreenNode):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (FullOpts)
; ============================================================
Unwind Info:-9 (-2.20%) : 215571.dasm - System.Xml.Schema.XmlSchemaValidator:.ctor(System.Xml.XmlNameTable,System.Xml.Schema.XmlSchemaSet,System.Xml.IXmlNamespaceResolver,int):this (FullOpts)
@@ -12,15 +12,15 @@
; V01 arg1 [V01,T02] ( 5, 4.50) ref -> rdi class-hnd single-def <System.Xml.XmlNameTable>
; V02 arg2 [V02,T01] ( 8, 5.50) ref -> rsi class-hnd single-def <System.Xml.Schema.XmlSchemaSet>
; V03 arg3 [V03,T03] ( 4, 4 ) ref -> rbp class-hnd single-def <System.Xml.IXmlNamespaceResolver>
-; V04 arg4 [V04,T07] ( 3, 3 ) int -> r14 single-def
+; V04 arg4 [V04,T09] ( 2, 2 ) int -> r14 single-def
; V05 OutArgs [V05 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <UNNAMED>
; V06 tmp1 [V06,T05] ( 3, 3 ) ref -> rbp class-hnd exact single-def "NewObj constructor temp" <System.Xml.Schema.XmlSchemaSet>
;* V07 tmp2 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Xml.Schema.XmlSchemaSet>
;* V08 tmp3 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Xml.Schema.XmlSchemaSet>
-; V09 tmp4 [V09,T08] ( 2, 2 ) ref -> rdi class-hnd single-def "impAppendStmt" <System.Xml.Schema.XmlSchemaSet>
+; V09 tmp4 [V09,T07] ( 2, 2 ) ref -> rdi class-hnd single-def "impAppendStmt" <System.Xml.Schema.XmlSchemaSet>
; V10 tmp5 [V10,T06] ( 3, 3 ) ref -> rsi class-hnd exact single-def "NewObj constructor temp" <System.Collections.Hashtable>
;* V11 tmp6 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Xml.Schema.XmlSchemaCompilationSettings>
-; V12 tmp7 [V12,T09] ( 2, 2 ) ref -> rbp class-hnd single-def "Inlining Arg" <System.Xml.XmlResolver>
+; V12 tmp7 [V12,T08] ( 2, 2 ) ref -> rbp class-hnd single-def "Inlining Arg" <System.Xml.XmlResolver>
; V13 tmp8 [V13,T04] ( 5, 5 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <System.Xml.XmlReaderSettings>
; V14 cse0 [V14,T10] ( 3, 1.50) ref -> rdi "CSE #01: aggressive"
;
@@ -67,12 +67,9 @@ G_M31695_IG02: ; bbWeight=1, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=
; gcrRegs -[rdx rbp]
; byrRegs -[rcx]
mov dword ptr [rbx+0xF0], r14d
- mov ecx, r14d
- and ecx, 1
- and r14d, 2
- or ecx, r14d
+ test r14b, 3
jne SHORT G_M31695_IG04
- ;; size=99 bbWeight=1 PerfScore 12.25
+ ;; size=90 bbWeight=1 PerfScore 11.50
G_M31695_IG03: ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rdi]
lea rcx, bword ptr [rbx+0x08]
@@ -218,7 +215,7 @@ G_M31695_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
RWD00 dd 3F800000h ; 1
-; Total bytes of code 409, prolog size 27, PerfScore 53.75, instruction count 96, allocated bytes for code 409 (MethodHash=d5398430) for method System.Xml.Schema.XmlSchemaValidator:.ctor(System.Xml.XmlNameTable,System.Xml.Schema.XmlSchemaSet,System.Xml.IXmlNamespaceResolver,int):this (FullOpts)
+; Total bytes of code 400, prolog size 27, PerfScore 53.00, instruction count 93, allocated bytes for code 400 (MethodHash=d5398430) for method System.Xml.Schema.XmlSchemaValidator:.ctor(System.Xml.XmlNameTable,System.Xml.Schema.XmlSchemaSet,System.Xml.IXmlNamespaceResolver,int):this (FullOpts)
; ============================================================
Unwind Info:-15 (-1.69%) : 233264.dasm - System.Speech.Internal.SrgsCompiler.Backend:CreateRule(System.String,int):System.Speech.Internal.SrgsCompiler.Rule:this (FullOpts)
@@ -10,7 +10,7 @@
;
; V00 this [V00,T01] ( 16, 17 ) ref -> rbx this class-hnd single-def <System.Speech.Internal.SrgsCompiler.Backend>
; V01 arg1 [V01,T05] ( 13, 12.19) ref -> rdi class-hnd single-def <System.String>
-; V02 arg2 [V02,T02] ( 21, 16.50) int -> rsi
+; V02 arg2 [V02,T03] ( 19, 15.50) int -> rsi
;* V03 loc0 [V03 ] ( 0, 0 ) int -> zero-ref single-def
; V04 loc1 [V04 ] ( 1, 1 ) int -> [rsp+0x58] do-not-enreg[X] must-init addr-exposed ld-addr-op
; V05 loc2 [V05 ] ( 2, 2 ) int -> [rsp+0x50] do-not-enreg[X] must-init addr-exposed ld-addr-op
@@ -71,7 +71,7 @@
; V60 tmp49 [V60,T33] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
; V61 cse0 [V61,T26] ( 2, 1 ) int -> r15 "CSE #07: moderate"
; V62 cse1 [V62,T12] ( 5, 6.19) int -> rbp multi-def "CSE #08: moderate"
-; V63 rat0 [V63,T03] ( 6, 18.50) long -> r13 "Widened IV V46"
+; V63 rat0 [V63,T02] ( 6, 18.50) long -> r13 "Widened IV V46"
;
; Lcl frame size = 96
@@ -111,17 +111,10 @@ G_M53126_IG04: ; bbWeight=1, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {},
;; size=6 bbWeight=1 PerfScore 1.25
G_M53126_IG05: ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
mov ecx, esi
- and ecx, 1
- mov edx, esi
- and edx, 2
- or ecx, edx
- mov edx, esi
- and edx, 64
- mov eax, esi
- and eax, -68
- or ecx, edx
- cmovne esi, eax
- ;; size=27 bbWeight=0.50 PerfScore 1.50
+ and ecx, -68
+ test sil, 67
+ cmovne esi, ecx
+ ;; size=12 bbWeight=0.50 PerfScore 0.62
G_M53126_IG06: ; bbWeight=1, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
test sil, 8
je SHORT G_M53126_IG08
@@ -462,7 +455,7 @@ G_M53126_IG32: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 889, prolog size 26, PerfScore 228.20, instruction count 230, allocated bytes for code 889 (MethodHash=7b3d3079) for method System.Speech.Internal.SrgsCompiler.Backend:CreateRule(System.String,int):System.Speech.Internal.SrgsCompiler.Rule:this (FullOpts)
+; Total bytes of code 874, prolog size 26, PerfScore 227.33, instruction count 223, allocated bytes for code 874 (MethodHash=7b3d3079) for method System.Speech.Internal.SrgsCompiler.Backend:CreateRule(System.String,int):System.Speech.Internal.SrgsCompiler.Rule:this (FullOpts)
; ============================================================
Unwind Info:-16 (-1.67%) : 73289.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.Scanner:TryScanXmlDocComment(Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxListBuilder):bool:this (FullOpts)
@@ -13,7 +13,7 @@
;* V02 loc0 [V02 ] ( 0, 0 ) struct (96) zero-ref do-not-enreg[SF] ld-addr-op <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.Scanner+RestorePoint>
; V03 loc1 [V03,T13] ( 4, 2.50) ref -> r13 class-hnd <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.DocumentationCommentTriviaSyntax>
;* V04 loc2 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.VisualBasicSyntaxNode>
-; V05 loc3 [V05,T26] ( 3, 0 ) ref -> [rbp-0xA0] class-hnd exact EH-live single-def <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.Parser>
+; V05 loc3 [V05,T25] ( 3, 0 ) ref -> [rbp-0xA0] class-hnd exact EH-live single-def <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.Parser>
;* V06 loc4 [V06 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.XmlNodeSyntax]>
; V07 OutArgs [V07 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <UNNAMED>
; V08 tmp1 [V08,T08] ( 4, 5.50) ref -> r13 single-def "ISINST eval op1"
@@ -25,7 +25,7 @@
; V14 tmp7 [V14,T11] ( 3, 3 ) int -> rax "Inlining Arg"
; V15 tmp8 [V15,T17] ( 3, 1.50) ref -> rdx class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.VisualBasicSyntaxNode>
; V16 tmp9 [V16,T01] ( 7, 12 ) struct (96) [rbp-0x98] do-not-enreg[SF] must-init ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.Scanner+RestorePoint>
-; V17 tmp10 [V17,T24] ( 2, 1 ) int -> rax "Inline return value spill temp"
+; V17 tmp10 [V17,T23] ( 2, 1 ) int -> rax "Inline return value spill temp"
;* V18 tmp11 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.GreenNode>
; V19 tmp12 [V19,T18] ( 3, 1.50) int -> rax "Inline return value spill temp"
;* V20 tmp13 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.GreenNode>
@@ -49,7 +49,7 @@
;* V38 tmp31 [V38 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inlining Arg" <Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.GreenNode]>
; V39 tmp32 [V39,T04] ( 7, 7 ) ref -> rsi class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.DocumentationCommentTriviaSyntax>
;* V40 tmp33 [V40 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.GreenNode>
-;* V41 tmp34 [V41,T25] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V41 tmp34 [V41,T24] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
; V42 tmp35 [V42,T09] ( 3, 3 ) byref -> rcx single-def "Inlining Arg"
;* V43 tmp36 [V43 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <Microsoft.CodeAnalysis.VisualBasic.VisualBasicParseOptions>
; V44 tmp37 [V44,T10] ( 3, 3 ) byref -> rcx single-def "dup spill"
@@ -82,7 +82,6 @@
; V71 tmp64 [V71,T16] ( 2, 2 ) ref -> rdx single-def "argument with side effect"
; V72 cse0 [V72,T21] ( 3, 1.50) int -> rax "CSE #02: moderate"
; V73 cse1 [V73,T22] ( 3, 1.50) int -> rcx "CSE #05: moderate"
-; V74 cse2 [V74,T23] ( 3, 1.50) int -> rax "CSE #08: moderate"
;
; Lcl frame size = 136
@@ -238,7 +237,7 @@ G_M3143_IG12: ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=00
mov gword ptr [rbp-0xA0], r12
; GC ptr vars +{V05}
;; size=37 bbWeight=0.50 PerfScore 3.00
-G_M3143_IG13: ; bbWeight=0.50, gcVars=0000000004000000 {V05}, gcrefRegs=D008 {rbx r12 r14 r15}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M3143_IG13: ; bbWeight=0.50, gcVars=0000000002000000 {V05}, gcrefRegs=D008 {rbx r12 r14 r15}, byrefRegs=0000 {}, gcvars, byref, isz
mov byte ptr [rbx+0xC3], 1
mov word ptr [rbx+0xC4], 257
mov rcx, r12
@@ -396,13 +395,8 @@ G_M3143_IG20: ; bbWeight=0.50, gcrefRegs=D048 {rbx rsi r12 r14 r15}, byre
lea rcx, bword ptr [r13+0x0E]
; gcrRegs -[rcx]
; byrRegs +[rcx]
- movzx rax, word ptr [rcx]
- mov edx, eax
- and edx, 0xF000
- and eax, 0xF7F
- or eax, edx
- mov word ptr [rcx], ax
- ;; size=38 bbWeight=0.50 PerfScore 4.88
+ and word ptr [rcx], 0xFF7F
+ ;; size=22 bbWeight=0.50 PerfScore 4.38
G_M3143_IG21: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=F008 {rbx r12 r13 r14 r15}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs -[rsi]
; byrRegs -[rcx]
@@ -486,11 +480,11 @@ G_M3143_IG27: ; bbWeight=1, epilog, nogc, extend
pop rbp
ret
;; size=23 bbWeight=1 PerfScore 6.25
-G_M3143_IG28: ; bbWeight=0, gcVars=0000000004000000 {V05}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
+G_M3143_IG28: ; bbWeight=0, gcVars=0000000002000000 {V05}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, funclet prolog, nogc
; GC ptr vars +{V05}
sub rsp, 40
;; size=4 bbWeight=0 PerfScore 0.00
-G_M3143_IG29: ; bbWeight=0, gcVars=0000000004000000 {V05}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M3143_IG29: ; bbWeight=0, gcVars=0000000002000000 {V05}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
mov rdx, gword ptr [rbp-0xA0]
; gcrRegs +[rdx]
cmp byte ptr [rdx+0x3C], 0
@@ -512,7 +506,7 @@ G_M3143_IG31: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 960, prolog size 68, PerfScore 166.23, instruction count 242, allocated bytes for code 960 (MethodHash=3bfcf3b8) for method Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.Scanner:TryScanXmlDocComment(Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxListBuilder):bool:this (FullOpts)
+; Total bytes of code 944, prolog size 68, PerfScore 165.73, instruction count 237, allocated bytes for code 944 (MethodHash=3bfcf3b8) for method Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.Scanner:TryScanXmlDocComment(Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxListBuilder):bool:this (FullOpts)
; ============================================================
Unwind Info:-16 (-0.53%) : 72907.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.Parser:TryParseXmlCrefAttributeValue(Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.XmlNodeSyntax,Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.PunctuationSyntax,byref):bool:this (FullOpts)
@@ -9,193 +9,192 @@
; Final local variable assignments
;
; V00 this [V00,T00] ( 64, 58.50) ref -> rbx this class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.Parser>
-; V01 arg1 [V01,T16] ( 5, 3.25) ref -> rdx class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.XmlNodeSyntax>
-; V02 arg2 [V02,T13] ( 7, 4.50) ref -> rsi class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.PunctuationSyntax>
-; V03 arg3 [V03,T17] ( 4, 3 ) byref -> rdi single-def
-; V04 loc0 [V04,T66] ( 3, 2 ) ubyte -> rax
-; V05 loc1 [V05,T19] ( 9, 4.50) ref -> rbp class-hnd exact single-def <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.XmlNameSyntax>
-; V06 loc2 [V06,T14] ( 5, 6 ) int -> r14
-; V07 loc3 [V07,T20] ( 8, 4 ) ref -> r13 class-hnd <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.PunctuationSyntax>
+; V01 arg1 [V01,T15] ( 5, 3.25) ref -> rdx class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.XmlNodeSyntax>
+; V02 arg2 [V02,T12] ( 7, 4.50) ref -> rsi class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.PunctuationSyntax>
+; V03 arg3 [V03,T16] ( 4, 3 ) byref -> rdi single-def
+; V04 loc0 [V04,T65] ( 3, 2 ) ubyte -> rax
+; V05 loc1 [V05,T18] ( 9, 4.50) ref -> rbp class-hnd exact single-def <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.XmlNameSyntax>
+; V06 loc2 [V06,T13] ( 5, 6 ) int -> r14
+; V07 loc3 [V07,T19] ( 8, 4 ) ref -> r13 class-hnd <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.PunctuationSyntax>
; V08 loc4 [V08 ] ( 7, 3.50) struct (96) [rsp+0xA8] do-not-enreg[XS] must-init addr-exposed ld-addr-op <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.Scanner+RestorePoint>
-; V09 loc5 [V09,T87] ( 3, 1.50) ref -> rax class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxToken>
-; V10 loc6 [V10,T60] ( 4, 2 ) ref -> r15 class-hnd exact single-def <System.String>
+; V09 loc5 [V09,T86] ( 3, 1.50) ref -> rax class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxToken>
+; V10 loc6 [V10,T59] ( 4, 2 ) ref -> r15 class-hnd exact single-def <System.String>
; V11 loc7 [V11,T04] ( 14, 20.50) ref -> r15 class-hnd <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.CrefReferenceSyntax>
-; V12 loc8 [V12,T18] ( 10, 4.53) ref -> r12 class-hnd exact single-def <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.PredefinedTypeSyntax>
+; V12 loc8 [V12,T17] ( 10, 4.53) ref -> r12 class-hnd exact single-def <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.PredefinedTypeSyntax>
; V13 loc9 [V13,T03] ( 7, 21 ) ushort -> r12
-; V14 loc10 [V14,T61] ( 4, 2 ) ref -> r12 class-hnd <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.PunctuationSyntax>
+; V14 loc10 [V14,T60] ( 4, 2 ) ref -> r12 class-hnd <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.PunctuationSyntax>
;* V15 loc11 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxToken>
-; V16 loc12 [V16,T88] ( 3, 1.50) ref -> r14 class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.PunctuationSyntax>
+; V16 loc12 [V16,T87] ( 3, 1.50) ref -> r14 class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.PunctuationSyntax>
; V17 OutArgs [V17 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <UNNAMED>
-; V18 tmp1 [V18,T113] ( 2, 1 ) int -> r14
-; V19 tmp2 [V19,T67] ( 2, 2 ) ref -> r15 class-hnd single-def "impAppendStmt" <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.ContextAwareSyntaxFactory>
-; V20 tmp3 [V20,T114] ( 2, 1 ) int -> r14
+; V18 tmp1 [V18,T112] ( 2, 1 ) int -> r14
+; V19 tmp2 [V19,T66] ( 2, 2 ) ref -> r15 class-hnd single-def "impAppendStmt" <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.ContextAwareSyntaxFactory>
+; V20 tmp3 [V20,T113] ( 2, 1 ) int -> r14
;* V21 tmp4 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.XmlNameTokenSyntax>
;* V22 tmp5 [V22 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
-; V23 tmp6 [V23,T50] ( 5, 2.88) ref -> rcx single-def "spilling varStr"
+; V23 tmp6 [V23,T49] ( 5, 2.88) ref -> rcx single-def "spilling varStr"
;* V24 tmp7 [V24 ] ( 0, 0 ) int -> zero-ref "spilling unroll qmark"
;* V25 tmp8 [V25 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline return value spill temp" <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxToken>
-; V26 tmp9 [V26,T55] ( 5, 2.50) ref -> r14 class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxToken>
+; V26 tmp9 [V26,T54] ( 5, 2.50) ref -> r14 class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxToken>
;* V27 tmp10 [V27 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxToken>
-; V28 tmp11 [V28,T56] ( 5, 2.50) ref -> r14 class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxToken>
+; V28 tmp11 [V28,T55] ( 5, 2.50) ref -> r14 class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxToken>
;* V29 tmp12 [V29 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxToken>
-; V30 tmp13 [V30,T51] ( 6, 2.62) ref -> r13 class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxToken>
+; V30 tmp13 [V30,T50] ( 6, 2.62) ref -> r13 class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxToken>
;* V31 tmp14 [V31 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline return value spill temp" <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxToken>
-; V32 tmp15 [V32,T57] ( 5, 2.50) ref -> r14 class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxToken>
+; V32 tmp15 [V32,T56] ( 5, 2.50) ref -> r14 class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxToken>
;* V33 tmp16 [V33 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxToken>
-; V34 tmp17 [V34,T58] ( 5, 2.50) ref -> r14 class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxToken>
+; V34 tmp17 [V34,T57] ( 5, 2.50) ref -> r14 class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxToken>
;* V35 tmp18 [V35 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxToken>
-; V36 tmp19 [V36,T52] ( 6, 2.62) ref -> r15 class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxToken>
-; V37 tmp20 [V37,T11] ( 8, 8 ) ref -> r15 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.Scanner>
-; V38 tmp21 [V38,T21] ( 4, 4 ) struct (96) [rsp+0x48] do-not-enreg[SF] must-init ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.Scanner+RestorePoint>
-; V39 tmp22 [V39,T74] ( 2, 2 ) int -> rdx "Inlining Arg"
+; V36 tmp19 [V36,T51] ( 6, 2.62) ref -> r15 class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxToken>
+; V37 tmp20 [V37,T10] ( 8, 8 ) ref -> r15 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.Scanner>
+; V38 tmp21 [V38,T20] ( 4, 4 ) struct (96) [rsp+0x48] do-not-enreg[SF] must-init ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.Scanner+RestorePoint>
+; V39 tmp22 [V39,T73] ( 2, 2 ) int -> rdx "Inlining Arg"
;* V40 tmp23 [V40 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
-; V41 tmp24 [V41,T75] ( 2, 2 ) ushort -> r12 "Inlining Arg"
-; V42 tmp25 [V42,T33] ( 3, 3 ) ref -> rax class-hnd exact single-def "dup spill" <System.String>
+; V41 tmp24 [V41,T74] ( 2, 2 ) ushort -> r12 "Inlining Arg"
+; V42 tmp25 [V42,T32] ( 3, 3 ) ref -> rax class-hnd exact single-def "dup spill" <System.String>
;* V43 tmp26 [V43 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
;* V44 tmp27 [V44 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
;* V45 tmp28 [V45 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V46 tmp29 [V46 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
-; V47 tmp30 [V47,T76] ( 2, 2 ) ushort -> r15 "Inlining Arg"
-; V48 tmp31 [V48,T34] ( 3, 3 ) ref -> rax class-hnd exact single-def "dup spill" <System.String>
+; V47 tmp30 [V47,T75] ( 2, 2 ) ushort -> r15 "Inlining Arg"
+; V48 tmp31 [V48,T33] ( 3, 3 ) ref -> rax class-hnd exact single-def "dup spill" <System.String>
;* V49 tmp32 [V49 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
;* V50 tmp33 [V50 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
;* V51 tmp34 [V51 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V52 tmp35 [V52,T22] ( 4, 4 ) int -> rdx "Inlining Arg"
+; V52 tmp35 [V52,T21] ( 4, 4 ) int -> rdx "Inlining Arg"
;* V53 tmp36 [V53 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline return value spill temp" <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxToken>
-; V54 tmp37 [V54,T62] ( 3, 1.50) ref -> r15 class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxToken>
+; V54 tmp37 [V54,T61] ( 3, 1.50) ref -> r15 class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxToken>
;* V55 tmp38 [V55 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxToken>
-; V56 tmp39 [V56,T54] ( 6, 2.50) ref -> r12 class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxToken>
-; V57 tmp40 [V57,T23] ( 4, 4 ) int -> rdx "Inlining Arg"
+; V56 tmp39 [V56,T53] ( 6, 2.50) ref -> r12 class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxToken>
+; V57 tmp40 [V57,T22] ( 4, 4 ) int -> rdx "Inlining Arg"
;* V58 tmp41 [V58 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.CrefReferenceSyntax>
-; V59 tmp42 [V59,T35] ( 3, 3 ) ref -> r15 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.ContextAwareSyntaxFactory>
-; V60 tmp43 [V60,T30] ( 7, 3.50) int -> [rsp+0x44] ld-addr-op "Inline ldloca(s) first use temp"
+; V59 tmp42 [V59,T34] ( 3, 3 ) ref -> r15 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.ContextAwareSyntaxFactory>
+; V60 tmp43 [V60,T29] ( 7, 3.50) int -> [rsp+0x44] ld-addr-op "Inline ldloca(s) first use temp"
;* V61 tmp44 [V61 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.GreenNode>
-; V62 tmp45 [V62,T10] ( 10, 10 ) ref -> [rsp+0x28] class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.CrefReferenceSyntax>
+; V62 tmp45 [V62,T09] ( 10, 10 ) ref -> [rsp+0x28] class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.CrefReferenceSyntax>
;* V63 tmp46 [V63 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.CrefReferenceSyntax>
-; V64 tmp47 [V64,T89] ( 3, 1.50) ref -> r15 class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.CrefReferenceSyntax>
+; V64 tmp47 [V64,T88] ( 3, 1.50) ref -> r15 class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.CrefReferenceSyntax>
;* V65 tmp48 [V65 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.ISyntaxFactoryContext>
-; V66 tmp49 [V66,T86] ( 5, 1.75) ref -> rdx class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.GreenNode>
-; V67 tmp50 [V67,T49] ( 3, 3 ) ushort -> [rsp+0x40] spill-single-def "Inlining Arg"
-; V68 tmp51 [V68,T77] ( 2, 2 ) int -> rax "dup spill"
+; V66 tmp49 [V66,T85] ( 5, 1.75) ref -> rdx class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.GreenNode>
+; V67 tmp50 [V67,T48] ( 3, 3 ) ushort -> [rsp+0x40] spill-single-def "Inlining Arg"
+; V68 tmp51 [V68,T76] ( 2, 2 ) int -> rax "dup spill"
;* V69 tmp52 [V69 ] ( 0, 0 ) int -> zero-ref single-def "Inline stloc first use temp"
;* V70 tmp53 [V70 ] ( 0, 0 ) int -> zero-ref single-def "Inline stloc first use temp"
;* V71 tmp54 [V71 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V72 tmp55 [V72 ] ( 0, 0 ) struct (16) zero-ref "Inline stloc first use temp" <Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxNodeCache+Entry>
;* V73 tmp56 [V73 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V74 tmp57 [V74,T115] ( 2, 1 ) ubyte -> rax "Inline return value spill temp"
+; V74 tmp57 [V74,T114] ( 2, 1 ) ubyte -> rax "Inline return value spill temp"
;* V75 tmp58 [V75 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V76 tmp59 [V76 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V77 tmp60 [V77,T63] ( 4, 2 ) int -> [rsp+0x3C] "Inline stloc first use temp"
-; V78 tmp61 [V78,T107] ( 3, 1 ) int -> rax "Inline return value spill temp"
-; V79 tmp62 [V79,T102] ( 3, 1.47) int -> rax single-def "Inline stloc first use temp"
-;* V80 tmp63 [V80,T123] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V77 tmp60 [V77,T62] ( 4, 2 ) int -> [rsp+0x3C] "Inline stloc first use temp"
+; V78 tmp61 [V78,T106] ( 3, 1 ) int -> rax "Inline return value spill temp"
+; V79 tmp62 [V79,T101] ( 3, 1.47) int -> rax single-def "Inline stloc first use temp"
+;* V80 tmp63 [V80,T122] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V81 tmp64 [V81 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.GreenNode>
;* V82 tmp65 [V82 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V83 tmp66 [V83,T90] ( 3, 1.50) int -> registers "Inline return value spill temp"
-; V84 tmp67 [V84,T91] ( 3, 1.50) ubyte -> rdx single-def "Inline stloc first use temp"
+; V83 tmp66 [V83,T89] ( 3, 1.50) int -> registers "Inline return value spill temp"
+; V84 tmp67 [V84,T90] ( 3, 1.50) ubyte -> rdx single-def "Inline stloc first use temp"
;* V85 tmp68 [V85 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V86 tmp69 [V86,T68] ( 2, 2 ) ref -> rdx class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.ISyntaxFactoryContext>
-;* V87 tmp70 [V87,T120] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V88 tmp71 [V88,T36] ( 3, 3 ) byref -> rcx single-def "Inlining Arg"
+; V86 tmp69 [V86,T67] ( 2, 2 ) ref -> rdx class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.ISyntaxFactoryContext>
+;* V87 tmp70 [V87,T119] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+; V88 tmp71 [V88,T35] ( 3, 3 ) byref -> rcx single-def "Inlining Arg"
;* V89 tmp72 [V89 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V90 tmp73 [V90,T37] ( 3, 3 ) byref -> rdx single-def "dup spill"
-; V91 tmp74 [V91,T78] ( 2, 2 ) ushort -> rcx "Inlining Arg"
+; V90 tmp73 [V90,T36] ( 3, 3 ) byref -> rdx single-def "dup spill"
+; V91 tmp74 [V91,T77] ( 2, 2 ) ushort -> rcx "Inlining Arg"
;* V92 tmp75 [V92 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V93 tmp76 [V93 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxToken>
; V94 tmp77 [V94,T07] ( 3, 12 ) ref -> r12 class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxToken>
;* V95 tmp78 [V95 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxToken>
-; V96 tmp79 [V96,T53] ( 6, 2.62) ref -> r14 class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxToken>
+; V96 tmp79 [V96,T52] ( 6, 2.62) ref -> r14 class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxToken>
;* V97 tmp80 [V97 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V98 tmp81 [V98,T69] ( 2, 2 ) ref -> rbx class-hnd "Inlining Arg" <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.ContextAwareSyntaxFactory>
+; V98 tmp81 [V98,T68] ( 2, 2 ) ref -> rbx class-hnd "Inlining Arg" <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.ContextAwareSyntaxFactory>
; V99 tmp82 [V99,T05] ( 20, 20 ) ref -> r14 class-hnd exact "NewObj constructor temp" <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.XmlCrefAttributeSyntax>
-; V100 tmp83 [V100,T70] ( 2, 2 ) ref -> rdx class-hnd "Inlining Arg" <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.ISyntaxFactoryContext>
-;* V101 tmp84 [V101,T121] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V102 tmp85 [V102,T38] ( 3, 3 ) byref -> rcx "Inlining Arg"
+; V100 tmp83 [V100,T69] ( 2, 2 ) ref -> rdx class-hnd "Inlining Arg" <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.ISyntaxFactoryContext>
+;* V101 tmp84 [V101,T120] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+; V102 tmp85 [V102,T37] ( 3, 3 ) byref -> rcx "Inlining Arg"
;* V103 tmp86 [V103 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V104 tmp87 [V104,T39] ( 3, 3 ) byref -> rdx "dup spill"
-; V105 tmp88 [V105,T79] ( 2, 2 ) ushort -> rcx "Inlining Arg"
+; V104 tmp87 [V104,T38] ( 3, 3 ) byref -> rdx "dup spill"
+; V105 tmp88 [V105,T78] ( 2, 2 ) ushort -> rcx "Inlining Arg"
;* V106 tmp89 [V106 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V107 tmp90 [V107 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V108 tmp91 [V108,T40] ( 3, 3 ) byref -> rdx "dup spill"
-; V109 tmp92 [V109,T80] ( 2, 2 ) ushort -> rcx "Inlining Arg"
+; V108 tmp91 [V108,T39] ( 3, 3 ) byref -> rdx "dup spill"
+; V109 tmp92 [V109,T79] ( 2, 2 ) ushort -> rcx "Inlining Arg"
;* V110 tmp93 [V110 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V111 tmp94 [V111 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V112 tmp95 [V112,T41] ( 3, 3 ) byref -> rdx "dup spill"
-; V113 tmp96 [V113,T81] ( 2, 2 ) ushort -> rcx "Inlining Arg"
+; V112 tmp95 [V112,T40] ( 3, 3 ) byref -> rdx "dup spill"
+; V113 tmp96 [V113,T80] ( 2, 2 ) ushort -> rcx "Inlining Arg"
;* V114 tmp97 [V114 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V115 tmp98 [V115 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V116 tmp99 [V116,T42] ( 3, 3 ) byref -> rdx "dup spill"
-; V117 tmp100 [V117,T82] ( 2, 2 ) ushort -> rcx "Inlining Arg"
+; V116 tmp99 [V116,T41] ( 3, 3 ) byref -> rdx "dup spill"
+; V117 tmp100 [V117,T81] ( 2, 2 ) ushort -> rcx "Inlining Arg"
;* V118 tmp101 [V118 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V119 tmp102 [V119 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V120 tmp103 [V120,T43] ( 3, 3 ) byref -> rbx "dup spill"
-; V121 tmp104 [V121,T83] ( 2, 2 ) ushort -> rcx "Inlining Arg"
+; V120 tmp103 [V120,T42] ( 3, 3 ) byref -> rbx "dup spill"
+; V121 tmp104 [V121,T82] ( 2, 2 ) ushort -> rcx "Inlining Arg"
;* V122 tmp105 [V122 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V123 tmp106 [V123 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxToken>
; V124 tmp107 [V124,T02] ( 7, 22 ) ref -> r12 class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxToken>
;* V125 tmp108 [V125 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.CrefReferenceSyntax>
-; V126 tmp109 [V126,T12] ( 3, 8 ) ref -> r15 class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.CrefReferenceSyntax>
+; V126 tmp109 [V126,T11] ( 3, 8 ) ref -> r15 class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.CrefReferenceSyntax>
;* V127 tmp110 [V127 ] ( 0, 0 ) struct ( 8) zero-ref "Inline stloc first use temp" <Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.GreenNode]>
; V128 tmp111 [V128,T01] ( 3, 24 ) byref -> rcx "dup spill"
;* V129 tmp112 [V129 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
; V130 tmp113 [V130,T08] ( 2, 16 ) int -> rdx "Inlining Arg"
-; V131 tmp114 [V131,T71] ( 2, 2 ) ref -> rbx class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.ContextAwareSyntaxFactory>
+; V131 tmp114 [V131,T70] ( 2, 2 ) ref -> rbx class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.ContextAwareSyntaxFactory>
; V132 tmp115 [V132,T06] ( 19, 19 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.XmlCrefAttributeSyntax>
-; V133 tmp116 [V133,T72] ( 2, 2 ) ref -> rdx class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.ISyntaxFactoryContext>
-;* V134 tmp117 [V134,T122] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V135 tmp118 [V135,T44] ( 3, 3 ) byref -> rcx single-def "Inlining Arg"
+; V133 tmp116 [V133,T71] ( 2, 2 ) ref -> rdx class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.ISyntaxFactoryContext>
+;* V134 tmp117 [V134,T121] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+; V135 tmp118 [V135,T43] ( 3, 3 ) byref -> rcx single-def "Inlining Arg"
;* V136 tmp119 [V136 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V137 tmp120 [V137,T45] ( 3, 3 ) byref -> rdx single-def "dup spill"
-; V138 tmp121 [V138,T84] ( 2, 2 ) ushort -> rcx "Inlining Arg"
+; V137 tmp120 [V137,T44] ( 3, 3 ) byref -> rdx single-def "dup spill"
+; V138 tmp121 [V138,T83] ( 2, 2 ) ushort -> rcx "Inlining Arg"
;* V139 tmp122 [V139 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V140 tmp123 [V140 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V141 tmp124 [V141,T46] ( 3, 3 ) byref -> rdx single-def "dup spill"
-; V142 tmp125 [V142,T85] ( 2, 2 ) ushort -> rcx "Inlining Arg"
+; V141 tmp124 [V141,T45] ( 3, 3 ) byref -> rdx single-def "dup spill"
+; V142 tmp125 [V142,T84] ( 2, 2 ) ushort -> rcx "Inlining Arg"
;* V143 tmp126 [V143 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V144 tmp127 [V144 ] ( 0, 0 ) long -> zero-ref single-def "field V43.m_asTAddr (fldOffset=0x0)" P-INDEP
;* V145 tmp128 [V145 ] ( 0, 0 ) long -> zero-ref single-def "field V44.m_asTAddr (fldOffset=0x0)" P-INDEP
;* V146 tmp129 [V146 ] ( 0, 0 ) long -> zero-ref single-def "field V49.m_asTAddr (fldOffset=0x0)" P-INDEP
;* V147 tmp130 [V147 ] ( 0, 0 ) long -> zero-ref single-def "field V50.m_asTAddr (fldOffset=0x0)" P-INDEP
-; V148 tmp131 [V148,T15] ( 11, 5.50) ref -> [rsp+0x20] spill-single-def "field V72.node (fldOffset=0x0)" P-INDEP
-; V149 tmp132 [V149,T116] ( 2, 1 ) int -> rcx single-def "field V72.hash (fldOffset=0x8)" P-INDEP
-; V150 tmp133 [V150,T24] ( 2, 4 ) ref -> r8 "field V127._node (fldOffset=0x0)" P-INDEP
+; V148 tmp131 [V148,T14] ( 11, 5.50) ref -> [rsp+0x20] spill-single-def "field V72.node (fldOffset=0x0)" P-INDEP
+; V149 tmp132 [V149,T115] ( 2, 1 ) int -> rcx single-def "field V72.hash (fldOffset=0x8)" P-INDEP
+; V150 tmp133 [V150,T23] ( 2, 4 ) ref -> r8 "field V127._node (fldOffset=0x0)" P-INDEP
;* V151 tmp134 [V151 ] ( 0, 0 ) ref -> zero-ref single-def "V38.[000..008)"
-; V152 tmp135 [V152,T111] ( 2, 1 ) ref -> rax single-def "V38.[008..016)"
-; V153 tmp136 [V153,T112] ( 2, 1 ) ref -> r8 single-def "V38.[016..024)"
-; V154 tmp137 [V154,T117] ( 2, 1 ) int -> rcx single-def "V38.[024..028)"
-; V155 tmp138 [V155,T118] ( 2, 1 ) int -> rdx single-def "V38.[028..032)"
-; V156 tmp139 [V156,T73] ( 2, 2 ) ref -> rdx single-def "argument with side effect"
-; V157 tmp140 [V157,T47] ( 3, 3 ) ref -> rcx single-def "arr expr"
-; V158 tmp141 [V158,T48] ( 3, 3 ) byref -> rcx single-def "BlockOp address local"
-; V159 tmp142 [V159,T59] ( 3, 2.25) ref -> rax single-def "argument with side effect"
-; V160 cse0 [V160,T92] ( 3, 1.50) int -> rcx "CSE #03: conservative"
-; V161 cse1 [V161,T32] ( 6, 3 ) long -> [rsp+0x30] multi-def "CSE #10: conservative"
-; V162 cse2 [V162,T93] ( 3, 1.50) int -> rcx "CSE #08: conservative"
-; V163 cse3 [V163,T09] ( 3, 12 ) int -> rdx "CSE #14: aggressive"
-; V164 cse4 [V164,T94] ( 3, 1.50) int -> rax "CSE #12: conservative"
+; V152 tmp135 [V152,T110] ( 2, 1 ) ref -> rax single-def "V38.[008..016)"
+; V153 tmp136 [V153,T111] ( 2, 1 ) ref -> r8 single-def "V38.[016..024)"
+; V154 tmp137 [V154,T116] ( 2, 1 ) int -> rcx single-def "V38.[024..028)"
+; V155 tmp138 [V155,T117] ( 2, 1 ) int -> rdx single-def "V38.[028..032)"
+; V156 tmp139 [V156,T72] ( 2, 2 ) ref -> rdx single-def "argument with side effect"
+; V157 tmp140 [V157,T46] ( 3, 3 ) ref -> rcx single-def "arr expr"
+; V158 tmp141 [V158,T47] ( 3, 3 ) byref -> rcx single-def "BlockOp address local"
+; V159 tmp142 [V159,T58] ( 3, 2.25) ref -> rax single-def "argument with side effect"
+; V160 cse0 [V160,T91] ( 3, 1.50) int -> rcx "CSE #03: conservative"
+; V161 cse1 [V161,T31] ( 6, 3 ) long -> [rsp+0x30] multi-def "CSE #10: conservative"
+; V162 cse2 [V162,T92] ( 3, 1.50) int -> rcx "CSE #08: conservative"
+; V163 cse3 [V163,T93] ( 3, 1.50) int -> rax "CSE #12: conservative"
+; V164 cse4 [V164,T94] ( 3, 1.50) int -> rax "CSE #17: conservative"
; V165 cse5 [V165,T95] ( 3, 1.50) int -> rax "CSE #18: conservative"
; V166 cse6 [V166,T96] ( 3, 1.50) int -> rax "CSE #19: conservative"
; V167 cse7 [V167,T97] ( 3, 1.50) int -> rax "CSE #20: conservative"
-; V168 cse8 [V168,T98] ( 3, 1.50) int -> rax "CSE #21: conservative"
-; V169 cse9 [V169,T99] ( 3, 1.50) int -> rdx "CSE #22: conservative"
+; V168 cse8 [V168,T98] ( 3, 1.50) int -> rdx "CSE #21: conservative"
+; V169 cse9 [V169,T99] ( 3, 1.50) int -> rax "CSE #24: conservative"
; V170 cse10 [V170,T100] ( 3, 1.50) int -> rax "CSE #25: conservative"
-; V171 cse11 [V171,T101] ( 3, 1.50) int -> rax "CSE #26: conservative"
-; V172 cse12 [V172,T29] ( 7, 3.50) byref -> rbx "CSE #17: moderate"
-; V173 cse13 [V173,T119] ( 2, 1 ) int -> rcx "CSE #04: conservative"
-; V174 rat0 [V174,T64] ( 3, 2 ) ref -> rbp "replacement local"
-; V175 rat1 [V175,T108] ( 3, 1 ) long -> rcx "CSE for expectedClsNode"
-; V176 rat2 [V176,T25] ( 5, 3.75) ref -> rax "replacement local"
-; V177 rat3 [V177,T103] ( 3, 1.25) long -> rcx "CSE for expectedClsNode"
-; V178 rat4 [V178,T26] ( 5, 3.75) ref -> r13 "replacement local"
-; V179 rat5 [V179,T104] ( 3, 1.25) long -> rcx "CSE for expectedClsNode"
-; V180 rat6 [V180,T31] ( 4, 3.50) ref -> rdx "replacement local"
-; V181 rat7 [V181,T109] ( 3, 1 ) long -> rcx "CSE for expectedClsNode"
-; V182 rat8 [V182,T65] ( 3, 2 ) ref -> r15 "replacement local"
-; V183 rat9 [V183,T110] ( 3, 1 ) long -> rcx "CSE for expectedClsNode"
-; V184 rat10 [V184,T27] ( 5, 3.75) ref -> r12 "replacement local"
-; V185 rat11 [V185,T105] ( 3, 1.25) long -> rcx "CSE for expectedClsNode"
-; V186 rat12 [V186,T28] ( 5, 3.75) ref -> r14 "replacement local"
-; V187 rat13 [V187,T106] ( 3, 1.25) long -> rcx "CSE for expectedClsNode"
+; V171 cse11 [V171,T28] ( 7, 3.50) byref -> rbx "CSE #16: moderate"
+; V172 cse12 [V172,T118] ( 2, 1 ) int -> rcx "CSE #04: conservative"
+; V173 rat0 [V173,T63] ( 3, 2 ) ref -> rbp "replacement local"
+; V174 rat1 [V174,T107] ( 3, 1 ) long -> rcx "CSE for expectedClsNode"
+; V175 rat2 [V175,T24] ( 5, 3.75) ref -> rax "replacement local"
+; V176 rat3 [V176,T102] ( 3, 1.25) long -> rcx "CSE for expectedClsNode"
+; V177 rat4 [V177,T25] ( 5, 3.75) ref -> r13 "replacement local"
+; V178 rat5 [V178,T103] ( 3, 1.25) long -> rcx "CSE for expectedClsNode"
+; V179 rat6 [V179,T30] ( 4, 3.50) ref -> rdx "replacement local"
+; V180 rat7 [V180,T108] ( 3, 1 ) long -> rcx "CSE for expectedClsNode"
+; V181 rat8 [V181,T64] ( 3, 2 ) ref -> r15 "replacement local"
+; V182 rat9 [V182,T109] ( 3, 1 ) long -> rcx "CSE for expectedClsNode"
+; V183 rat10 [V183,T26] ( 5, 3.75) ref -> r12 "replacement local"
+; V184 rat11 [V184,T104] ( 3, 1.25) long -> rcx "CSE for expectedClsNode"
+; V185 rat12 [V185,T27] ( 5, 3.75) ref -> r14 "replacement local"
+; V186 rat13 [V186,T105] ( 3, 1.25) long -> rcx "CSE for expectedClsNode"
;
; Lcl frame size = 264
@@ -776,9 +775,9 @@ G_M43187_IG39: ; bbWeight=0.03, gcrefRegs=B068 {rbx rbp rsi r12 r13 r15},
; gcr arg pop 0
jmp G_M43187_IG36
;; size=14 bbWeight=0.03 PerfScore 0.13
-G_M43187_IG40: ; bbWeight=0.50, gcVars=00000000000000000000000000008000 {V148}, gcrefRegs=B168 {rbx rbp rsi r8 r12 r13 r15}, byrefRegs=0080 {rdi}, gcvars, byref
+G_M43187_IG40: ; bbWeight=0.50, gcVars=00000000000000000000000000004000 {V148}, gcrefRegs=B168 {rbx rbp rsi r8 r12 r13 r15}, byrefRegs=0080 {rdi}, gcvars, byref
; gcrRegs +[r8]
- ; GC ptr vars +{V148}
+ ; GC ptr vars +{V14 V148}
mov rcx, r8
; gcrRegs +[rcx]
mov rdx, qword ptr [r8]
@@ -831,7 +830,7 @@ G_M43187_IG41: ; bbWeight=0.50, gcrefRegs=B168 {rbx rbp rsi r8 r12 r13 r1
;; size=101 bbWeight=0.50 PerfScore 12.62
G_M43187_IG42: ; bbWeight=0.50, gcVars=00000000000000000000000000000000 {}, gcrefRegs=B06C {rdx rbx rbp rsi r12 r13 r15}, byrefRegs=0080 {rdi}, gcvars, byref, isz
; gcrRegs -[rax r8]
- ; GC ptr vars -{V148}
+ ; GC ptr vars -{V14 V148}
test rdx, rdx
jne G_M43187_IG44
mov rcx, 0xD1FFAB1E ; Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.CrefReferenceSyntax
@@ -918,12 +917,7 @@ G_M43187_IG46: ; bbWeight=4, gcrefRegs=A068 {rbx rbp rsi r13 r15}, byrefR
cmp byte ptr [r15], r15b
lea rcx, bword ptr [r15+0x0E]
; byrRegs +[rcx]
- movzx rdx, word ptr [rcx]
- mov eax, edx
- and eax, 0xF000
- and edx, 0xF7F
- or edx, eax
- mov word ptr [rcx], dx
+ and word ptr [rcx], 0xFF7F
mov edx, r14d
mov rcx, gword ptr [rbx+0x08]
; gcrRegs +[rcx]
@@ -932,7 +926,7 @@ G_M43187_IG46: ; bbWeight=4, gcrefRegs=A068 {rbx rbp rsi r13 r15}, byrefR
call [Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.Scanner:GetNextTokenInState(int):this]
; gcrRegs -[rcx]
; gcr arg pop 0
- ;; size=43 bbWeight=4 PerfScore 55.00
+ ;; size=27 bbWeight=4 PerfScore 51.00
G_M43187_IG47: ; bbWeight=4, gcrefRegs=A068 {rbx rbp rsi r13 r15}, byrefRegs=0080 {rdi}, byref, isz
xor rcx, rcx
; gcrRegs +[rcx]
@@ -1450,7 +1444,7 @@ G_M43187_IG71: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 3009, prolog size 85, PerfScore 536.31, instruction count 707, allocated bytes for code 3009 (MethodHash=e5aa574c) for method Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.Parser:TryParseXmlCrefAttributeValue(Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.XmlNodeSyntax,Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.PunctuationSyntax,byref):bool:this (FullOpts)
+; Total bytes of code 2993, prolog size 85, PerfScore 532.31, instruction count 702, allocated bytes for code 2993 (MethodHash=e5aa574c) for method Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.Parser:TryParseXmlCrefAttributeValue(Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.XmlNodeSyntax,Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.PunctuationSyntax,byref):bool:this (FullOpts)
; ============================================================
Unwind Info:-9 (-0.34%) : 59017.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:ReclassifyArrayLiteralExpression(ushort,Microsoft.CodeAnalysis.SyntaxNode,int,bool,Microsoft.CodeAnalysis.VisualBasic.BoundArrayLiteral,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this (FullOpts)
@@ -11,7 +11,7 @@
; V00 this [V00,T05] ( 13, 7.50) ref -> rsi this class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Binder>
; V01 arg1 [V01,T15] ( 6, 3 ) ushort -> r13 single-def
; V02 arg2 [V02,T09] ( 8, 5 ) ref -> r14 class-hnd single-def <Microsoft.CodeAnalysis.SyntaxNode>
-; V03 arg3 [V03,T06] ( 11, 7.50) int -> registers
+; V03 arg3 [V03,T06] ( 10, 6.50) int -> registers
; V04 arg4 [V04,T43] ( 3, 1.50) ubyte -> [rbp+0x30] single-def
; V05 arg5 [V05,T03] ( 21, 10.50) ref -> rbx class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.BoundArrayLiteral>
; V06 arg6 [V06,T12] ( 11, 5.50) ref -> r15 class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol>
@@ -317,13 +317,9 @@ G_M11402_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; gcrRegs +[r12]
;; size=51 bbWeight=1 PerfScore 12.75
G_M11402_IG02: ; bbWeight=1, gcrefRegs=D048 {rbx rsi r12 r14 r15}, byrefRegs=0000 {}, byref
- mov edx, edi
- and edx, 3
- mov ecx, edi
- and ecx, 0xD1FFAB1E
- or edx, ecx
+ test edi, 0xD1FFAB1E
je G_M11402_IG30
- ;; size=21 bbWeight=1 PerfScore 2.25
+ ;; size=12 bbWeight=1 PerfScore 1.25
G_M11402_IG03: ; bbWeight=0.50, gcrefRegs=D048 {rbx rsi r12 r14 r15}, byrefRegs=0000 {}, byref, isz
mov r8, gword ptr [rbx+0x20]
; gcrRegs +[r8]
@@ -1401,7 +1397,7 @@ G_M11402_IG67: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 2623, prolog size 27, PerfScore 295.62, instruction count 592, allocated bytes for code 2623 (MethodHash=359ad375) for method Microsoft.CodeAnalysis.VisualBasic.Binder:ReclassifyArrayLiteralExpression(ushort,Microsoft.CodeAnalysis.SyntaxNode,int,bool,Microsoft.CodeAnalysis.VisualBasic.BoundArrayLiteral,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this (FullOpts)
+; Total bytes of code 2614, prolog size 27, PerfScore 294.62, instruction count 588, allocated bytes for code 2614 (MethodHash=359ad375) for method Microsoft.CodeAnalysis.VisualBasic.Binder:ReclassifyArrayLiteralExpression(ushort,Microsoft.CodeAnalysis.SyntaxNode,int,bool,Microsoft.CodeAnalysis.VisualBasic.BoundArrayLiteral,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this (FullOpts)
; ============================================================
Unwind Info:libraries_tests.run.windows.x64.Release.mch
-3 (-18.75%) : 55671.dasm - Xunit.Sdk.Sha1Digest:G(uint,uint,uint):uint (Tier1)
@@ -9,9 +9,9 @@
; No matching PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 4, 4 ) int -> rcx single-def
-; V01 arg1 [V01,T01] ( 4, 4 ) int -> rdx single-def
-; V02 arg2 [V02,T02] ( 4, 4 ) int -> r8 single-def
+; V00 arg0 [V00,T02] ( 3, 3 ) int -> rcx single-def
+; V01 arg1 [V01,T00] ( 4, 4 ) int -> rdx single-def
+; V02 arg2 [V02,T01] ( 4, 4 ) int -> r8 single-def
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
;
; Lcl frame size = 0
@@ -19,18 +19,17 @@
G_M45053_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
;; size=0 bbWeight=1 PerfScore 0.00
G_M45053_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov eax, ecx
- and eax, edx
- and ecx, r8d
+ mov eax, edx
+ and eax, r8d
+ or edx, r8d
+ and ecx, edx
or eax, ecx
- and r8d, edx
- or eax, r8d
- ;; size=15 bbWeight=1 PerfScore 1.50
+ ;; size=12 bbWeight=1 PerfScore 1.25
G_M45053_IG03: ; bbWeight=1, epilog, nogc, extend
ret
;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 16, prolog size 0, PerfScore 2.50, instruction count 7, allocated bytes for code 16 (MethodHash=10e45002) for method Xunit.Sdk.Sha1Digest:G(uint,uint,uint):uint (Tier1)
+; Total bytes of code 13, prolog size 0, PerfScore 2.25, instruction count 6, allocated bytes for code 13 (MethodHash=10e45002) for method Xunit.Sdk.Sha1Digest:G(uint,uint,uint):uint (Tier1)
; ============================================================
Unwind Info:-32 (-3.59%) : 392565.dasm - Xunit.Sdk.AsyncUtility:TryConvertToTask(System.Object):System.Threading.Tasks.Task (Tier1)
@@ -10,7 +10,7 @@
; Final local variable assignments
;
; V00 arg0 [V00,T00] ( 7, 4.04) ref -> rbx class-hnd single-def <System.Object>
-; V01 loc0 [V01,T03] ( 4, 3.48) ref -> rax class-hnd single-def <System.Threading.Tasks.Task>
+; V01 loc0 [V01,T02] ( 4, 3.48) ref -> rax class-hnd single-def <System.Threading.Tasks.Task>
; V02 loc1 [V02,T05] ( 4, 0 ) ref -> rsi class-hnd exact single-def <System.RuntimeType>
; V03 loc2 [V03,T04] ( 5, 0 ) ref -> rdi class-hnd single-def <System.Reflection.TypeInfo>
; V04 loc3 [V04,T09] ( 3, 0 ) ref -> rax class-hnd single-def <System.Threading.Tasks.Task>
@@ -30,7 +30,7 @@
; V18 tmp13 [V18,T16] ( 3, 0 ) ref -> rdi class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
; V19 tmp14 [V19,T07] ( 4, 0 ) ref -> rbp class-hnd exact single-def "NewObj constructor temp" <System.Func`2[System.Reflection.MethodInfo,bool]>
; V20 tmp15 [V20,T17] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-; V21 tmp16 [V21,T02] ( 8, 4.88) int -> rcx single-def "Inline stloc first use temp"
+; V21 tmp16 [V21,T03] ( 6, 3.14) int -> rcx single-def "Inline stloc first use temp"
;* V22 tmp17 [V22,T08] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V23 tmp18 [V23 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
;* V24 tmp19 [V24 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Collections.Generic.IEnumerable`1[System.Reflection.MethodInfo]>
@@ -58,10 +58,10 @@ G_M3689_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rbx, rcx
; gcrRegs +[rbx]
;; size=18 bbWeight=1 PerfScore 5.75
-G_M3689_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M3689_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
test rbx, rbx
- je G_M3689_IG08
- ;; size=9 bbWeight=1 PerfScore 1.25
+ je SHORT G_M3689_IG08
+ ;; size=5 bbWeight=1 PerfScore 1.25
G_M3689_IG03: ; bbWeight=0.87, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
mov rax, rbx
; gcrRegs +[rax]
@@ -73,16 +73,9 @@ G_M3689_IG04: ; bbWeight=0.87, gcrefRegs=0009 {rax rbx}, byrefRegs=0000 {
test rax, rax
je G_M3689_IG11
mov ecx, dword ptr [rax+0x34]
- mov edx, ecx
- and edx, 0xD1FFAB1E
- mov r8d, ecx
- and r8d, 0xD1FFAB1E
- or edx, r8d
- mov r8d, ecx
- and r8d, 0xD1FFAB1E
- or edx, r8d
+ test ecx, 0xD1FFAB1E
jne SHORT G_M3689_IG06
- ;; size=48 bbWeight=0.87 PerfScore 5.44
+ ;; size=20 bbWeight=0.87 PerfScore 3.92
G_M3689_IG05: ; bbWeight=0.35, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rbx]
test ecx, 0xD1FFAB1E
@@ -423,7 +416,7 @@ G_M3689_IG17: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 892, prolog size 15, PerfScore 21.10, instruction count 205, allocated bytes for code 892 (MethodHash=6785f196) for method Xunit.Sdk.AsyncUtility:TryConvertToTask(System.Object):System.Threading.Tasks.Task (Tier1)
+; Total bytes of code 860, prolog size 15, PerfScore 19.57, instruction count 198, allocated bytes for code 860 (MethodHash=6785f196) for method Xunit.Sdk.AsyncUtility:TryConvertToTask(System.Object):System.Threading.Tasks.Task (Tier1)
; ============================================================
Unwind Info:-8 (-2.74%) : 242261.dasm - System.RuntimeType:GetBaseType():System.RuntimeType:this (Tier1)
@@ -14,7 +14,7 @@
; V02 loc1 [V02,T11] ( 6, 0 ) ref -> rdi class-hnd <System.RuntimeType>
;* V03 loc2 [V03,T16] ( 0, 0 ) int -> zero-ref
; V04 loc3 [V04,T12] ( 5, 0 ) ref -> r14 class-hnd exact <System.RuntimeType>
-; V05 loc4 [V05,T15] ( 3, 0 ) int -> rax
+; V05 loc4 [V05,T15] ( 2, 0 ) int -> rax
; V06 OutArgs [V06 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <UNNAMED>
;* V07 tmp1 [V07 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V08 tmp2 [V08,T10] ( 3, 2 ) int -> rcx
@@ -178,12 +178,9 @@ G_M56028_IG14: ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000
call [System.RuntimeType:get_GenericParameterAttributes():int:this]
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M56028_IG16
- ;; size=71 bbWeight=0 PerfScore 0.00
+ ;; size=63 bbWeight=0 PerfScore 0.00
G_M56028_IG15: ; bbWeight=0, gcrefRegs=4048 {rbx rsi r14}, byrefRegs=0000 {}, byref
; gcrRegs -[rdi]
mov rdi, r14
@@ -224,7 +221,7 @@ G_M56028_IG19: ; bbWeight=0, epilog, nogc, extend
ret
;; size=11 bbWeight=0 PerfScore 0.00
-; Total bytes of code 292, prolog size 10, PerfScore 32.94, instruction count 99, allocated bytes for code 292 (MethodHash=370d2523) for method System.RuntimeType:GetBaseType():System.RuntimeType:this (Tier1)
+; Total bytes of code 284, prolog size 10, PerfScore 32.94, instruction count 96, allocated bytes for code 284 (MethodHash=370d2523) for method System.RuntimeType:GetBaseType():System.RuntimeType:this (Tier1)
; ============================================================
Unwind Info:-11 (-1.84%) : 399940.dasm - System.Runtime.CompilerServices.TaskAwaiter:ThrowForNonSuccess(System.Threading.Tasks.Task) (Tier1)
@@ -18,10 +18,10 @@
;* V06 tmp2 [V06 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V07 tmp3 [V07 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V08 tmp4 [V08 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V09 tmp5 [V09,T04] ( 4, 3.94) int -> rcx "Inline stloc first use temp"
+; V09 tmp5 [V09,T06] ( 3, 2.94) int -> rcx "Inline stloc first use temp"
;* V10 tmp6 [V10,T11] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V11 tmp7 [V11 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V12 tmp8 [V12,T05] ( 8, 4.17) int -> rcx "Inline stloc first use temp"
+; V12 tmp8 [V12,T04] ( 8, 4.17) int -> rcx "Inline stloc first use temp"
; V13 tmp9 [V13,T07] ( 8, 3.00) int -> rdx "Inline stloc first use temp"
; V14 tmp10 [V14,T09] ( 3, 2.00) int -> rcx
; V15 tmp11 [V15,T10] ( 3, 2.00) ubyte -> rcx "Inline return value spill temp"
@@ -34,7 +34,7 @@
;* V22 tmp18 [V22 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V23 tmp19 [V23 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V24 tmp20 [V24 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V25 tmp21 [V25,T06] ( 2, 3.94) byref -> rcx single-def "Inlining Arg"
+; V25 tmp21 [V25,T05] ( 2, 3.94) byref -> rcx single-def "Inlining Arg"
; V26 tmp22 [V26,T03] ( 3, 6.00) ref -> rcx single-def "arr expr"
;
; Lcl frame size = 32
@@ -62,13 +62,9 @@ G_M30140_IG03: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
;; size=26 bbWeight=0.50 PerfScore 1.75
G_M30140_IG04: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
mov ecx, dword ptr [rbx+0x34]
- mov edx, ecx
- and edx, 0xD1FFAB1E
- mov eax, ecx
- and eax, 0xD1FFAB1E
- or edx, eax
+ test ecx, 0xD1FFAB1E
jne SHORT G_M30140_IG07
- ;; size=22 bbWeight=1 PerfScore 4.25
+ ;; size=11 bbWeight=1 PerfScore 3.25
G_M30140_IG05: ; bbWeight=0.94, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
test ecx, 0xD1FFAB1E
je SHORT G_M30140_IG07
@@ -308,7 +304,7 @@ G_M30140_IG34: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 598, prolog size 7, PerfScore 78.63, instruction count 133, allocated bytes for code 598 (MethodHash=74148a43) for method System.Runtime.CompilerServices.TaskAwaiter:ThrowForNonSuccess(System.Threading.Tasks.Task) (Tier1)
+; Total bytes of code 587, prolog size 7, PerfScore 77.63, instruction count 129, allocated bytes for code 587 (MethodHash=74148a43) for method System.Runtime.CompilerServices.TaskAwaiter:ThrowForNonSuccess(System.Threading.Tasks.Task) (Tier1)
; ============================================================
Unwind Info:-8 (-1.43%) : 671002.dasm - System.Runtime.CompilerServices.CallSite`1[System.__Canon]:Create(System.Runtime.CompilerServices.CallSiteBinder):System.Runtime.CompilerServices.CallSite`1[System.__Canon] (Tier1)
@@ -22,7 +22,7 @@
; V09 tmp7 [V09,T24] ( 6, 0 ) ref -> r14 class-hnd "Inline stloc first use temp" <System.RuntimeType>
;* V10 tmp8 [V10,T29] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V11 tmp9 [V11,T25] ( 5, 0 ) ref -> r13 class-hnd exact "Inline stloc first use temp" <System.RuntimeType>
-; V12 tmp10 [V12,T28] ( 3, 0 ) int -> rax "Inline stloc first use temp"
+; V12 tmp10 [V12,T28] ( 2, 0 ) int -> rax "Inline stloc first use temp"
;* V13 tmp11 [V13 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V14 tmp12 [V14,T21] ( 3, 2 ) int -> rcx
;* V15 tmp13 [V15 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
@@ -294,12 +294,9 @@ G_M44890_IG20: ; bbWeight=0, gcrefRegs=40E0 {rbp rsi rdi r14}, byrefRegs=
call [System.RuntimeType:get_GenericParameterAttributes():int:this]
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M44890_IG22
- ;; size=71 bbWeight=0 PerfScore 0.00
+ ;; size=63 bbWeight=0 PerfScore 0.00
G_M44890_IG21: ; bbWeight=0, gcrefRegs=20E0 {rbp rsi rdi r13}, byrefRegs=0000 {}, byref
; gcrRegs -[r14]
mov r14, r13
@@ -359,7 +356,7 @@ G_M44890_IG27: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=17 bbWeight=0 PerfScore 0.00
-; Total bytes of code 560, prolog size 19, PerfScore 69.39, instruction count 151, allocated bytes for code 560 (MethodHash=82b350a5) for method System.Runtime.CompilerServices.CallSite`1[System.__Canon]:Create(System.Runtime.CompilerServices.CallSiteBinder):System.Runtime.CompilerServices.CallSite`1[System.__Canon] (Tier1)
+; Total bytes of code 552, prolog size 19, PerfScore 69.39, instruction count 148, allocated bytes for code 552 (MethodHash=82b350a5) for method System.Runtime.CompilerServices.CallSite`1[System.__Canon]:Create(System.Runtime.CompilerServices.CallSiteBinder):System.Runtime.CompilerServices.CallSite`1[System.__Canon] (Tier1)
; ============================================================
Unwind Info:-11 (-1.39%) : 399939.dasm - System.Runtime.CompilerServices.TaskAwaiter:HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task,int) (Tier1)
@@ -23,10 +23,10 @@
;* V11 tmp8 [V11 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V12 tmp9 [V12 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V13 tmp10 [V13 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V14 tmp11 [V14,T05] ( 4, 3.94) int -> rcx "Inline stloc first use temp"
+; V14 tmp11 [V14,T07] ( 3, 2.94) int -> rcx "Inline stloc first use temp"
;* V15 tmp12 [V15,T12] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V16 tmp13 [V16 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V17 tmp14 [V17,T06] ( 8, 4.17) int -> rcx "Inline stloc first use temp"
+; V17 tmp14 [V17,T05] ( 8, 4.17) int -> rcx "Inline stloc first use temp"
; V18 tmp15 [V18,T08] ( 8, 3 ) int -> rdx "Inline stloc first use temp"
; V19 tmp16 [V19,T10] ( 3, 2 ) int -> rcx
; V20 tmp17 [V20,T11] ( 3, 2 ) ubyte -> rcx "Inline return value spill temp"
@@ -39,7 +39,7 @@
;* V27 tmp24 [V27 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V28 tmp25 [V28 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V29 tmp26 [V29 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V30 tmp27 [V30,T07] ( 2, 3.94) byref -> rcx single-def "Inlining Arg"
+; V30 tmp27 [V30,T06] ( 2, 3.94) byref -> rcx single-def "Inlining Arg"
; V31 tmp28 [V31,T16] ( 3, 0 ) ref -> rcx class-hnd exact single-def "dup spill" <System.Threading.Tasks.Task+ContingentProperties>
;* V32 tmp29 [V32 ] ( 0, 0 ) ref -> zero-ref single-def
; V33 tmp30 [V33,T13] ( 6, 0 ) ref -> rbx class-hnd exact single-def "dup spill" <System.Threading.Tasks.TaskExceptionHolder>
@@ -110,13 +110,9 @@ G_M42179_IG07: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
;; size=26 bbWeight=0.50 PerfScore 1.75
G_M42179_IG08: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
mov ecx, dword ptr [rbx+0x34]
- mov edx, ecx
- and edx, 0xD1FFAB1E
- mov eax, ecx
- and eax, 0xD1FFAB1E
- or edx, eax
+ test ecx, 0xD1FFAB1E
jne SHORT G_M42179_IG11
- ;; size=22 bbWeight=1 PerfScore 4.25
+ ;; size=11 bbWeight=1 PerfScore 3.25
G_M42179_IG09: ; bbWeight=0.94, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
test ecx, 0xD1FFAB1E
je SHORT G_M42179_IG11
@@ -396,7 +392,7 @@ G_M42179_IG41: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 790, prolog size 7, PerfScore 93.14, instruction count 176, allocated bytes for code 790 (MethodHash=b4495b3c) for method System.Runtime.CompilerServices.TaskAwaiter:HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task,int) (Tier1)
+; Total bytes of code 779, prolog size 7, PerfScore 92.14, instruction count 172, allocated bytes for code 779 (MethodHash=b4495b3c) for method System.Runtime.CompilerServices.TaskAwaiter:HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task,int) (Tier1)
; ============================================================
Unwind Info:-8 (-1.28%) : 397640.dasm - System.Reflection.CustomAttributeExtensions:GetCustomAttribute[System.__Canon](System.Reflection.Assembly):System.__Canon (Tier1)
@@ -25,7 +25,7 @@
; V12 tmp10 [V12,T27] ( 6, 0 ) ref -> r14 class-hnd "Inline stloc first use temp" <System.RuntimeType>
;* V13 tmp11 [V13,T34] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V14 tmp12 [V14,T28] ( 5, 0 ) ref -> r13 class-hnd exact "Inline stloc first use temp" <System.RuntimeType>
-; V15 tmp13 [V15,T32] ( 3, 0 ) int -> rax "Inline stloc first use temp"
+; V15 tmp13 [V15,T33] ( 2, 0 ) int -> rax "Inline stloc first use temp"
;* V16 tmp14 [V16 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V17 tmp15 [V17,T25] ( 3, 2 ) int -> rcx
;* V18 tmp16 [V18 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
@@ -49,7 +49,7 @@
; V36 tmp34 [V36,T11] ( 2, 3.55) long -> rax "Cast away GC"
; V37 tmp35 [V37,T08] ( 2, 4.00) ref -> rdx single-def "argument with side effect"
; V38 tmp36 [V38,T05] ( 3, 4.50) ref -> rax single-def "argument with side effect"
-; V39 tmp37 [V39,T33] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V39 tmp37 [V39,T32] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
; V40 cse0 [V40,T03] ( 9, 6.89) ref -> rdi "CSE #03: aggressive"
; V41 cse1 [V41,T18] ( 4, 2.50) long -> rsi "CSE #02: moderate"
; V42 cse2 [V42,T15] ( 3, 3.00) int -> rcx "CSE #08: moderate"
@@ -284,12 +284,9 @@ G_M12223_IG22: ; bbWeight=0, gcrefRegs=40A8 {rbx rbp rdi r14}, byrefRegs=
call [System.RuntimeType:get_GenericParameterAttributes():int:this]
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M12223_IG24
- ;; size=71 bbWeight=0 PerfScore 0.00
+ ;; size=63 bbWeight=0 PerfScore 0.00
G_M12223_IG23: ; bbWeight=0, gcrefRegs=20A8 {rbx rbp rdi r13}, byrefRegs=0000 {}, byref
; gcrRegs -[r14]
mov r14, r13
@@ -384,7 +381,7 @@ G_M12223_IG31: ; bbWeight=0, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byr
int3
;; size=18 bbWeight=0 PerfScore 0.00
-; Total bytes of code 626, prolog size 19, PerfScore 67.78, instruction count 164, allocated bytes for code 626 (MethodHash=40b9d040) for method System.Reflection.CustomAttributeExtensions:GetCustomAttribute[System.__Canon](System.Reflection.Assembly):System.__Canon (Tier1)
+; Total bytes of code 618, prolog size 19, PerfScore 67.78, instruction count 161, allocated bytes for code 618 (MethodHash=40b9d040) for method System.Reflection.CustomAttributeExtensions:GetCustomAttribute[System.__Canon](System.Reflection.Assembly):System.__Canon (Tier1)
; ============================================================
Unwind Info:-5 (-1.09%) : 694563.dasm - System.Sha1ForNonSecretPurposes:Drain(System.Span`1[uint]) (Tier1)
@@ -10,7 +10,7 @@
;
; V00 arg0 [V00,T21] ( 4, 8 ) byref -> rcx ld-addr-op single-def
; V01 loc0 [V01,T05] ( 14,254.00) int -> registers
-; V02 loc1 [V02,T02] ( 16,296.00) int -> registers
+; V02 loc1 [V02,T02] ( 15,275.00) int -> registers
; V03 loc2 [V03,T03] ( 15,275.00) int -> registers
; V04 loc3 [V04,T04] ( 15,275.00) int -> registers
; V05 loc4 [V05,T07] ( 10,170.00) int -> registers
@@ -148,13 +148,11 @@ G_M28360_IG08: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0001 {rax},
mov ebx, 40
;; size=5 bbWeight=1.00 PerfScore 0.25
G_M28360_IG09: ; bbWeight=21.00, gcrefRegs=0000 {}, byrefRegs=0001 {rax}, byref, isz
- mov esi, r8d
- and esi, r10d
- mov edi, r8d
- and edi, r9d
- or esi, edi
+ mov esi, r10d
+ and esi, r9d
mov edi, r10d
- and edi, r9d
+ or edi, r9d
+ and edi, r8d
or esi, edi
mov edi, edx
rol edi, 5
@@ -172,7 +170,7 @@ G_M28360_IG09: ; bbWeight=21.00, gcrefRegs=0000 {}, byrefRegs=0001 {rax},
mov r10d, r8d
mov r8d, ebp
jl SHORT G_M28360_IG09
- ;; size=72 bbWeight=21.00 PerfScore 204.75
+ ;; size=67 bbWeight=21.00 PerfScore 194.25
G_M28360_IG10: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0001 {rax}, byref
mov ebx, 60
;; size=5 bbWeight=1.00 PerfScore 0.25
@@ -227,7 +225,7 @@ G_M28360_IG14: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 459, prolog size 8, PerfScore 1749.50, instruction count 137, allocated bytes for code 459 (MethodHash=c3689137) for method System.Sha1ForNonSecretPurposes:Drain(System.Span`1[uint]) (Tier1)
+; Total bytes of code 454, prolog size 8, PerfScore 1739.00, instruction count 135, allocated bytes for code 454 (MethodHash=c3689137) for method System.Sha1ForNonSecretPurposes:Drain(System.Span`1[uint]) (Tier1)
; ============================================================
Unwind Info:-9 (-1.02%) : 475360.dasm - System.Xml.Schema.XmlSchemaValidator:.ctor(System.Xml.XmlNameTable,System.Xml.Schema.XmlSchemaSet,System.Xml.IXmlNamespaceResolver,int):this (Tier1)
@@ -13,14 +13,14 @@
; V01 arg1 [V01,T03] ( 5, 4.56) ref -> rdi class-hnd single-def <System.Xml.XmlNameTable>
; V02 arg2 [V02,T02] ( 8, 5.67) ref -> rsi class-hnd single-def <System.Xml.Schema.XmlSchemaSet>
; V03 arg3 [V03,T04] ( 4, 4 ) ref -> rbp class-hnd single-def <System.Xml.IXmlNamespaceResolver>
-; V04 arg4 [V04,T13] ( 3, 3 ) int -> r14 single-def
+; V04 arg4 [V04,T16] ( 2, 2 ) int -> r14 single-def
; V05 OutArgs [V05 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <UNNAMED>
; V06 tmp1 [V06,T11] ( 3, 3.35) ref -> rbp class-hnd exact single-def "NewObj constructor temp" <System.Xml.Schema.XmlSchemaSet>
; V07 tmp2 [V07,T05] ( 7, 5.58) ref -> rdi class-hnd single-def "impAppendStmt" <System.Xml.Schema.XmlSchemaSet>
;* V08 tmp3 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Xml.Schema.XmlSchemaSet>
-; V09 tmp4 [V09,T16] ( 2, 2.23) ref -> rdi class-hnd single-def "impAppendStmt" <System.Xml.Schema.XmlSchemaSet>
+; V09 tmp4 [V09,T15] ( 2, 2.23) ref -> rdi class-hnd single-def "impAppendStmt" <System.Xml.Schema.XmlSchemaSet>
; V10 tmp5 [V10,T01] ( 8, 8.93) ref -> rdi class-hnd exact single-def "NewObj constructor temp" <System.Collections.Hashtable>
-; V11 tmp6 [V11,T14] ( 3, 2.23) ref -> rbp class-hnd exact single-def "Inlining Arg" <System.Xml.Schema.ValidationEventHandler>
+; V11 tmp6 [V11,T13] ( 3, 2.23) ref -> rbp class-hnd exact single-def "Inlining Arg" <System.Xml.Schema.ValidationEventHandler>
; V12 tmp7 [V12,T21] ( 5, 1.12) ref -> rcx class-hnd "Inline return value spill temp" <System.Delegate>
; V13 tmp8 [V13,T10] ( 4, 3.35) ref -> rcx class-hnd exact single-def "Inlining Arg" <System.Xml.Schema.ValidationEventHandler>
; V14 tmp9 [V14,T12] ( 3, 3.35) ref -> rdx class-hnd exact single-def "Inlining Arg" <System.Xml.Schema.ValidationEventHandler>
@@ -30,7 +30,7 @@
;* V18 tmp13 [V18 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
;* V19 tmp14 [V19 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
; V20 tmp15 [V20,T22] ( 4, 1.12) ref -> rdx class-hnd "Inline return value spill temp" <System.Delegate>
-; V21 tmp16 [V21,T15] ( 3, 2.23) ref -> rcx class-hnd exact single-def "Inlining Arg" <System.Xml.Schema.ValidationEventHandler>
+; V21 tmp16 [V21,T14] ( 3, 2.23) ref -> rcx class-hnd exact single-def "Inlining Arg" <System.Xml.Schema.ValidationEventHandler>
;* V22 tmp17 [V22 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Xml.Schema.XmlSchemaCompilationSettings>
; V23 tmp18 [V23,T23] ( 3, 1.12) ref -> rdx class-hnd "Inline return value spill temp" <System.Xml.XmlResolver>
; V24 tmp19 [V24,T09] ( 4, 3.51) ref -> rbp class-hnd exact single-def "Inlining Arg" <System.Xml.XmlReaderSettings>
@@ -102,12 +102,9 @@ G_M31695_IG02: ; bbWeight=1, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=
; gcrRegs -[rdx rbp]
; byrRegs -[rcx]
mov dword ptr [rbx+0xF0], r14d
- mov ecx, r14d
- and ecx, 1
- and r14d, 2
- or ecx, r14d
+ test r14b, 3
je G_M31695_IG19
- ;; size=103 bbWeight=1 PerfScore 12.25
+ ;; size=94 bbWeight=1 PerfScore 11.50
G_M31695_IG03: ; bbWeight=0.56, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref
mov rcx, 0xD1FFAB1E ; System.Xml.Schema.XmlSchemaSet
call CORINFO_HELP_NEWSFAST
@@ -474,7 +471,7 @@ RWD04 dd 40400000h ; 3
RWD08 dd 4F000000h ; 2.14748e+09
-; Total bytes of code 884, prolog size 27, PerfScore 82.55, instruction count 196, allocated bytes for code 884 (MethodHash=d5398430) for method System.Xml.Schema.XmlSchemaValidator:.ctor(System.Xml.XmlNameTable,System.Xml.Schema.XmlSchemaSet,System.Xml.IXmlNamespaceResolver,int):this (Tier1)
+; Total bytes of code 875, prolog size 27, PerfScore 81.80, instruction count 193, allocated bytes for code 875 (MethodHash=d5398430) for method System.Xml.Schema.XmlSchemaValidator:.ctor(System.Xml.XmlNameTable,System.Xml.Schema.XmlSchemaSet,System.Xml.IXmlNamespaceResolver,int):this (Tier1)
; ============================================================
Unwind Info:-8 (-1.00%) : 312000.dasm - Xunit.Internal.ArgumentFormatter:IsAnonymousType(System.Reflection.TypeInfo):bool (Tier1)
@@ -11,7 +11,7 @@
;
; V00 arg0 [V00,T00] ( 16, 6.58) ref -> rbx class-hnd single-def <System.Reflection.TypeInfo>
; V01 OutArgs [V01 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <UNNAMED>
-; V02 tmp1 [V02,T27] ( 2, 0 ) ref -> rcx class-hnd "Inline return value spill temp" <System.Attribute>
+; V02 tmp1 [V02,T26] ( 2, 0 ) ref -> rcx class-hnd "Inline return value spill temp" <System.Attribute>
;* V03 tmp2 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.Attribute[]>
; V04 tmp3 [V04,T23] ( 3, 0 ) ref -> rcx class-hnd single-def "Inline stloc first use temp" <System.Attribute>
;* V05 tmp4 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Attribute[]>
@@ -31,7 +31,7 @@
; V19 tmp18 [V19,T20] ( 6, 0 ) ref -> rbp class-hnd "Inline stloc first use temp" <System.RuntimeType>
;* V20 tmp19 [V20,T32] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V21 tmp20 [V21,T21] ( 5, 0 ) ref -> r15 class-hnd exact "Inline stloc first use temp" <System.RuntimeType>
-; V22 tmp21 [V22,T26] ( 3, 0 ) int -> rax "Inline stloc first use temp"
+; V22 tmp21 [V22,T29] ( 2, 0 ) int -> rax "Inline stloc first use temp"
;* V23 tmp22 [V23 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V24 tmp23 [V24,T15] ( 2, 2 ) int -> rcx
;* V25 tmp24 [V25 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
@@ -59,8 +59,8 @@
; V47 tmp46 [V47,T07] ( 2, 3.66) long -> rax "Cast away GC"
;* V48 tmp47 [V48,T30] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
;* V49 tmp48 [V49,T31] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
-; V50 tmp49 [V50,T28] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
-; V51 tmp50 [V51,T29] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
+; V50 tmp49 [V50,T27] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V51 tmp50 [V51,T28] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
;* V52 tmp51 [V52 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
; V53 cse0 [V53,T02] ( 9, 4.24) ref -> rsi "CSE #01: aggressive"
; V54 rat0 [V54,T22] ( 5, 0 ) long -> r14 "Widened IV V20"
@@ -301,12 +301,9 @@ G_M15962_IG24: ; bbWeight=0, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=
call [System.RuntimeType:get_GenericParameterAttributes():int:this]
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M15962_IG26
- ;; size=71 bbWeight=0 PerfScore 0.00
+ ;; size=63 bbWeight=0 PerfScore 0.00
G_M15962_IG25: ; bbWeight=0, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rbp]
mov rbp, r15
@@ -457,7 +454,7 @@ G_M15962_IG36: ; bbWeight=0, epilog, nogc, extend
tail.jmp [System.String:Contains(System.String):bool:this]
;; size=18 bbWeight=0 PerfScore 0.00
-; Total bytes of code 798, prolog size 12, PerfScore 56.66, instruction count 196, allocated bytes for code 798 (MethodHash=36a8c1a5) for method Xunit.Internal.ArgumentFormatter:IsAnonymousType(System.Reflection.TypeInfo):bool (Tier1)
+; Total bytes of code 790, prolog size 12, PerfScore 56.66, instruction count 193, allocated bytes for code 790 (MethodHash=36a8c1a5) for method Xunit.Internal.ArgumentFormatter:IsAnonymousType(System.Reflection.TypeInfo):bool (Tier1)
; ============================================================
Unwind Info:-8 (-0.92%) : 53558.dasm - System.Reflection.CustomAttributeExtensions:GetCustomAttribute[System.__Canon](System.Reflection.MemberInfo,bool):System.__Canon (Tier1)
@@ -34,7 +34,7 @@
; V21 tmp18 [V21,T27] ( 6, 0 ) ref -> r15 class-hnd "Inline stloc first use temp" <System.RuntimeType>
;* V22 tmp19 [V22,T39] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V23 tmp20 [V23,T28] ( 5, 0 ) ref -> r12 class-hnd exact "Inline stloc first use temp" <System.RuntimeType>
-; V24 tmp21 [V24,T33] ( 3, 0 ) int -> rax "Inline stloc first use temp"
+; V24 tmp21 [V24,T38] ( 2, 0 ) int -> rax "Inline stloc first use temp"
;* V25 tmp22 [V25 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V26 tmp23 [V26,T24] ( 3, 2 ) int -> rcx
;* V27 tmp24 [V27 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
@@ -60,11 +60,11 @@
;* V47 tmp44 [V47 ] ( 0, 0 ) long -> zero-ref "field V32.m_asTAddr (fldOffset=0x0)" P-INDEP
; V48 tmp45 [V48,T15] ( 3, 3 ) long -> rcx "field V35.m_asTAddr (fldOffset=0x0)" P-INDEP
; V49 tmp46 [V49,T11] ( 2, 3.11) long -> rax "Cast away GC"
-; V50 tmp47 [V50,T34] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
-; V51 tmp48 [V51,T35] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
-; V52 tmp49 [V52,T36] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
-; V53 tmp50 [V53,T37] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
-; V54 tmp51 [V54,T38] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V50 tmp47 [V50,T33] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
+; V51 tmp48 [V51,T34] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V52 tmp49 [V52,T35] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
+; V53 tmp50 [V53,T36] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V54 tmp51 [V54,T37] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
;* V55 tmp52 [V55 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
; V56 cse0 [V56,T03] ( 11, 6.78) ref -> rbp "CSE #03: aggressive"
; V57 cse1 [V57,T16] ( 4, 2.83) long -> rdi "CSE #02: moderate"
@@ -339,12 +339,9 @@ G_M2461_IG28: ; bbWeight=0, gcrefRegs=C028 {rbx rbp r14 r15}, byrefRegs=0
call [System.RuntimeType:get_GenericParameterAttributes():int:this]
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M2461_IG30
- ;; size=71 bbWeight=0 PerfScore 0.00
+ ;; size=63 bbWeight=0 PerfScore 0.00
G_M2461_IG29: ; bbWeight=0, gcrefRegs=5028 {rbx rbp r12 r14}, byrefRegs=0000 {}, byref
; gcrRegs -[r15]
mov r15, r12
@@ -503,7 +500,7 @@ G_M2461_IG41: ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byre
int3
;; size=15 bbWeight=0 PerfScore 0.00
-; Total bytes of code 873, prolog size 21, PerfScore 75.95, instruction count 217, allocated bytes for code 873 (MethodHash=b8cdf662) for method System.Reflection.CustomAttributeExtensions:GetCustomAttribute[System.__Canon](System.Reflection.MemberInfo,bool):System.__Canon (Tier1)
+; Total bytes of code 865, prolog size 21, PerfScore 75.95, instruction count 214, allocated bytes for code 865 (MethodHash=b8cdf662) for method System.Reflection.CustomAttributeExtensions:GetCustomAttribute[System.__Canon](System.Reflection.MemberInfo,bool):System.__Canon (Tier1)
; ============================================================
Unwind Info:-8 (-0.89%) : 650269.dasm - System.Reflection.CustomAttributeExtensions:GetCustomAttributes[System.__Canon](System.Reflection.MemberInfo,bool):System.Collections.Generic.IEnumerable`1[System.__Canon] (Tier1)
@@ -32,7 +32,7 @@
; V19 tmp16 [V19,T31] ( 6, 0 ) ref -> r15 class-hnd "Inline stloc first use temp" <System.RuntimeType>
;* V20 tmp17 [V20,T40] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V21 tmp18 [V21,T32] ( 5, 0 ) ref -> r12 class-hnd exact "Inline stloc first use temp" <System.RuntimeType>
-; V22 tmp19 [V22,T36] ( 3, 0 ) int -> rax "Inline stloc first use temp"
+; V22 tmp19 [V22,T39] ( 2, 0 ) int -> rax "Inline stloc first use temp"
;* V23 tmp20 [V23 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V24 tmp21 [V24,T25] ( 3, 2 ) int -> rcx
;* V25 tmp22 [V25 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
@@ -58,11 +58,11 @@
;* V45 tmp42 [V45 ] ( 0, 0 ) long -> zero-ref "field V30.m_asTAddr (fldOffset=0x0)" P-INDEP
; V46 tmp43 [V46,T15] ( 3, 3 ) long -> rcx "field V33.m_asTAddr (fldOffset=0x0)" P-INDEP
; V47 tmp44 [V47,T13] ( 2, 3.02) long -> rax "Cast away GC"
-; V48 tmp45 [V48,T37] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
-; V49 tmp46 [V49,T38] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V48 tmp45 [V48,T36] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
+; V49 tmp46 [V49,T37] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
; V50 tmp47 [V50,T26] ( 2, 1.60) ref -> rcx single-def "argument with side effect"
; V51 tmp48 [V51,T27] ( 2, 1.60) ref -> rdx single-def "argument with side effect"
-; V52 tmp49 [V52,T39] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V52 tmp49 [V52,T38] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
; V53 tmp50 [V53,T16] ( 3, 3 ) long -> rcx "argument with side effect"
;* V54 tmp51 [V54 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
; V55 cse0 [V55,T03] ( 11, 6.75) ref -> rbp "CSE #03: aggressive"
@@ -414,12 +414,9 @@ G_M56609_IG39: ; bbWeight=0, gcrefRegs=C028 {rbx rbp r14 r15}, byrefRegs=
call [System.RuntimeType:get_GenericParameterAttributes():int:this]
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M56609_IG41
- ;; size=71 bbWeight=0 PerfScore 0.00
+ ;; size=63 bbWeight=0 PerfScore 0.00
G_M56609_IG40: ; bbWeight=0, gcrefRegs=5028 {rbx rbp r12 r14}, byrefRegs=0000 {}, byref
; gcrRegs -[r15]
mov r15, r12
@@ -512,7 +509,7 @@ G_M56609_IG46: ; bbWeight=0, gcrefRegs=0028 {rbx rbp}, byrefRegs=0000 {},
jmp G_M56609_IG18
;; size=42 bbWeight=0 PerfScore 0.00
-; Total bytes of code 897, prolog size 21, PerfScore 84.24, instruction count 219, allocated bytes for code 897 (MethodHash=800022de) for method System.Reflection.CustomAttributeExtensions:GetCustomAttributes[System.__Canon](System.Reflection.MemberInfo,bool):System.Collections.Generic.IEnumerable`1[System.__Canon] (Tier1)
+; Total bytes of code 889, prolog size 21, PerfScore 84.24, instruction count 216, allocated bytes for code 889 (MethodHash=800022de) for method System.Reflection.CustomAttributeExtensions:GetCustomAttributes[System.__Canon](System.Reflection.MemberInfo,bool):System.Collections.Generic.IEnumerable`1[System.__Canon] (Tier1)
; ============================================================
Unwind Info:-24 (-0.83%) : 248582.dasm - Xunit.Sdk.XunitTestCaseRunner:get_BeforeAfterAttributes():System.Collections.Generic.IReadOnlyList`1[Xunit.Sdk.BeforeAfterTestAttribute]:this (Tier1)
@@ -53,7 +53,7 @@
; V41 tmp40 [V41,T80] ( 6, 0 ) ref -> r15 class-hnd "Inline stloc first use temp" <System.RuntimeType>
;* V42 tmp41 [V42,T108] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V43 tmp42 [V43,T83] ( 5, 0 ) ref -> r12 class-hnd exact "Inline stloc first use temp" <System.RuntimeType>
-; V44 tmp43 [V44,T97] ( 3, 0 ) int -> rax "Inline stloc first use temp"
+; V44 tmp43 [V44,T105] ( 2, 0 ) int -> rax "Inline stloc first use temp"
;* V45 tmp44 [V45 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V46 tmp45 [V46,T63] ( 2, 2 ) int -> rcx
;* V47 tmp46 [V47 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
@@ -98,7 +98,7 @@
; V86 tmp85 [V86,T81] ( 6, 0 ) ref -> r15 class-hnd "Inline stloc first use temp" <System.RuntimeType>
;* V87 tmp86 [V87,T109] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V88 tmp87 [V88,T84] ( 5, 0 ) ref -> r12 class-hnd exact "Inline stloc first use temp" <System.RuntimeType>
-; V89 tmp88 [V89,T98] ( 3, 0 ) int -> rax "Inline stloc first use temp"
+; V89 tmp88 [V89,T106] ( 2, 0 ) int -> rax "Inline stloc first use temp"
;* V90 tmp89 [V90 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V91 tmp90 [V91,T64] ( 2, 2 ) int -> rcx
;* V92 tmp91 [V92 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
@@ -151,7 +151,7 @@
; V139 tmp138 [V139,T82] ( 6, 0 ) ref -> r15 class-hnd "Inline stloc first use temp" <System.RuntimeType>
;* V140 tmp139 [V140,T110] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V141 tmp140 [V141,T85] ( 5, 0 ) ref -> r12 class-hnd exact "Inline stloc first use temp" <System.RuntimeType>
-; V142 tmp141 [V142,T99] ( 3, 0 ) int -> rax "Inline stloc first use temp"
+; V142 tmp141 [V142,T107] ( 2, 0 ) int -> rax "Inline stloc first use temp"
;* V143 tmp142 [V143 ] ( 0, 0 ) long -> zero-ref "field V45.m_asTAddr (fldOffset=0x0)" P-INDEP
;* V144 tmp143 [V144,T72] ( 0, 0 ) long -> zero-ref "field V47.m_asTAddr (fldOffset=0x0)" P-INDEP
;* V145 tmp144 [V145 ] ( 0, 0 ) long -> zero-ref "field V52.m_asTAddr (fldOffset=0x0)" P-INDEP
@@ -160,21 +160,21 @@
;* V148 tmp147 [V148,T74] ( 0, 0 ) long -> zero-ref "field V92.m_asTAddr (fldOffset=0x0)" P-INDEP
;* V149 tmp148 [V149 ] ( 0, 0 ) long -> zero-ref "field V97.m_asTAddr (fldOffset=0x0)" P-INDEP
;* V150 tmp149 [V150,T75] ( 0, 0 ) long -> zero-ref "field V100.m_asTAddr (fldOffset=0x0)" P-INDEP
-; V151 tmp150 [V151,T100] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
+; V151 tmp150 [V151,T97] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
; V152 tmp151 [V152,T31] ( 2, 3.88) long -> rax "Cast away GC"
-; V153 tmp152 [V153,T101] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
+; V153 tmp152 [V153,T98] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
;* V154 tmp153 [V154 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
-; V155 tmp154 [V155,T102] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
+; V155 tmp154 [V155,T99] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
; V156 tmp155 [V156,T32] ( 2, 3.88) long -> rax "Cast away GC"
-; V157 tmp156 [V157,T103] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
+; V157 tmp156 [V157,T100] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
;* V158 tmp157 [V158 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
-; V159 tmp158 [V159,T104] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
-; V160 tmp159 [V160,T105] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
-; V161 tmp160 [V161,T106] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V159 tmp158 [V159,T101] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
+; V160 tmp159 [V160,T102] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V161 tmp160 [V161,T103] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
; V162 tmp161 [V162,T23] ( 2, 4 ) ref -> r8 single-def "argument with side effect"
; V163 tmp162 [V163,T24] ( 2, 4 ) ref -> rdx single-def "argument with side effect"
; V164 tmp163 [V164,T25] ( 2, 4 ) ref -> rdx single-def "argument with side effect"
-; V165 tmp164 [V165,T107] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V165 tmp164 [V165,T104] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
; V166 cse0 [V166,T00] ( 26, 11.94) ref -> registers multi-def "CSE #01: aggressive"
; V167 rat0 [V167,T86] ( 5, 0 ) long -> r13 "Widened IV V42"
; V168 rat1 [V168,T87] ( 5, 0 ) long -> r13 "Widened IV V87"
@@ -955,12 +955,9 @@ G_M8802_IG70: ; bbWeight=0, gcrefRegs=C0E8 {rbx rbp rsi rdi r14 r15}, byr
call [System.RuntimeType:get_GenericParameterAttributes():int:this]
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M8802_IG72
- ;; size=71 bbWeight=0 PerfScore 0.00
+ ;; size=63 bbWeight=0 PerfScore 0.00
G_M8802_IG71: ; bbWeight=0, gcrefRegs=50E8 {rbx rbp rsi rdi r12 r14}, byrefRegs=0000 {}, byref
; gcrRegs -[r15]
mov r15, r12
@@ -1135,12 +1132,9 @@ G_M8802_IG83: ; bbWeight=0, gcrefRegs=C0E8 {rbx rbp rsi rdi r14 r15}, byr
call [System.RuntimeType:get_GenericParameterAttributes():int:this]
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M8802_IG85
- ;; size=71 bbWeight=0 PerfScore 0.00
+ ;; size=63 bbWeight=0 PerfScore 0.00
G_M8802_IG84: ; bbWeight=0, gcrefRegs=50E8 {rbx rbp rsi rdi r12 r14}, byrefRegs=0000 {}, byref
; gcrRegs -[r15]
mov r15, r12
@@ -1405,12 +1399,9 @@ G_M8802_IG105: ; bbWeight=0, gcrefRegs=C0E8 {rbx rbp rsi rdi r14 r15}, by
call [System.RuntimeType:get_GenericParameterAttributes():int:this]
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M8802_IG107
- ;; size=71 bbWeight=0 PerfScore 0.00
+ ;; size=63 bbWeight=0 PerfScore 0.00
G_M8802_IG106: ; bbWeight=0, gcrefRegs=50E8 {rbx rbp rsi rdi r12 r14}, byrefRegs=0000 {}, byref
; gcrRegs -[r15]
mov r15, r12
@@ -1513,7 +1504,7 @@ G_M8802_IG114: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
jmp G_M8802_IG59
;; size=18 bbWeight=0 PerfScore 0.00
-; Total bytes of code 2894, prolog size 16, PerfScore 235.10, instruction count 643, allocated bytes for code 2894 (MethodHash=7c50dd9d) for method Xunit.Sdk.XunitTestCaseRunner:get_BeforeAfterAttributes():System.Collections.Generic.IReadOnlyList`1[Xunit.Sdk.BeforeAfterTestAttribute]:this (Tier1)
+; Total bytes of code 2870, prolog size 16, PerfScore 235.10, instruction count 634, allocated bytes for code 2870 (MethodHash=7c50dd9d) for method Xunit.Sdk.XunitTestCaseRunner:get_BeforeAfterAttributes():System.Collections.Generic.IReadOnlyList`1[Xunit.Sdk.BeforeAfterTestAttribute]:this (Tier1)
; ============================================================
Unwind Info:-24 (-0.82%) : 650536.dasm - System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver:DeterminePropertyPolicies(System.Text.Json.Serialization.Metadata.JsonPropertyInfo,System.Reflection.MemberInfo) (Tier1)
@@ -48,7 +48,7 @@
; V36 tmp29 [V36,T109] ( 6, 0 ) ref -> r14 class-hnd "Inline stloc first use temp" <System.RuntimeType>
;* V37 tmp30 [V37,T133] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V38 tmp31 [V38,T112] ( 5, 0 ) ref -> r13 class-hnd exact "Inline stloc first use temp" <System.RuntimeType>
-; V39 tmp32 [V39,T124] ( 3, 0 ) int -> rax "Inline stloc first use temp"
+; V39 tmp32 [V39,T128] ( 2, 0 ) int -> rax "Inline stloc first use temp"
;* V40 tmp33 [V40 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V41 tmp34 [V41,T75] ( 2, 2 ) int -> rcx
;* V42 tmp35 [V42 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
@@ -113,7 +113,7 @@
; V101 tmp94 [V101,T110] ( 6, 0 ) ref -> r13 class-hnd "Inline stloc first use temp" <System.RuntimeType>
;* V102 tmp95 [V102,T134] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V103 tmp96 [V103,T113] ( 5, 0 ) ref -> [rsp+0x40] class-hnd exact spill-single-def "Inline stloc first use temp" <System.RuntimeType>
-; V104 tmp97 [V104,T125] ( 3, 0 ) int -> rax "Inline stloc first use temp"
+; V104 tmp97 [V104,T129] ( 2, 0 ) int -> rax "Inline stloc first use temp"
;* V105 tmp98 [V105 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V106 tmp99 [V106,T76] ( 2, 2 ) int -> rcx
;* V107 tmp100 [V107 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
@@ -172,7 +172,7 @@
; V160 tmp153 [V160,T111] ( 6, 0 ) ref -> r13 class-hnd "Inline stloc first use temp" <System.RuntimeType>
;* V161 tmp154 [V161,T135] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V162 tmp155 [V162,T114] ( 5, 0 ) ref -> [rsp+0x38] class-hnd exact spill-single-def "Inline stloc first use temp" <System.RuntimeType>
-; V163 tmp156 [V163,T126] ( 3, 0 ) int -> rax "Inline stloc first use temp"
+; V163 tmp156 [V163,T130] ( 2, 0 ) int -> rax "Inline stloc first use temp"
;* V164 tmp157 [V164 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V165 tmp158 [V165,T77] ( 2, 2 ) int -> rcx
;* V166 tmp159 [V166 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
@@ -253,12 +253,12 @@
;* V241 tmp234 [V241,T132] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
;* V242 tmp235 [V242 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
;* V243 tmp236 [V243,T97] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
-; V244 tmp237 [V244,T127] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
-; V245 tmp238 [V245,T128] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V244 tmp237 [V244,T124] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V245 tmp238 [V245,T125] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
; V246 tmp239 [V246,T30] ( 2, 3.02) long -> rax "Cast away GC"
-; V247 tmp240 [V247,T129] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
+; V247 tmp240 [V247,T126] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
; V248 tmp241 [V248,T81] ( 2, 1.54) ref -> rcx single-def "argument with side effect"
-; V249 tmp242 [V249,T130] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V249 tmp242 [V249,T127] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
;* V250 tmp243 [V250 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
; V251 cse0 [V251,T10] ( 9, 4.20) ref -> rdi "CSE #01: aggressive"
; V252 cse1 [V252,T11] ( 9, 4.20) ref -> rdi "CSE #12: moderate"
@@ -1153,12 +1153,9 @@ G_M35855_IG103: ; bbWeight=0, gcrefRegs=40E8 {rbx rbp rsi rdi r14}, byref
call [System.RuntimeType:get_GenericParameterAttributes():int:this]
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M35855_IG105
- ;; size=71 bbWeight=0 PerfScore 0.00
+ ;; size=63 bbWeight=0 PerfScore 0.00
G_M35855_IG104: ; bbWeight=0, gcrefRegs=20E8 {rbx rbp rsi rdi r13}, byrefRegs=0000 {}, byref
; gcrRegs -[r14]
mov r14, r13
@@ -1346,12 +1343,9 @@ G_M35855_IG119: ; bbWeight=0, gcrefRegs=A0C8 {rbx rsi rdi r13 r15}, byref
call [System.RuntimeType:get_GenericParameterAttributes():int:this]
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M35855_IG121
- ;; size=77 bbWeight=0 PerfScore 0.00
+ ;; size=69 bbWeight=0 PerfScore 0.00
G_M35855_IG120: ; bbWeight=0, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref
; gcrRegs -[r13]
mov r13, gword ptr [rsp+0x40]
@@ -1531,12 +1525,9 @@ G_M35855_IG134: ; bbWeight=0, gcrefRegs=A0C8 {rbx rsi rdi r13 r15}, byref
call [System.RuntimeType:get_GenericParameterAttributes():int:this]
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M35855_IG136
- ;; size=77 bbWeight=0 PerfScore 0.00
+ ;; size=69 bbWeight=0 PerfScore 0.00
G_M35855_IG135: ; bbWeight=0, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref
; gcrRegs -[r13]
mov r13, gword ptr [rsp+0x38]
@@ -1699,7 +1690,7 @@ G_M35855_IG149: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 2920, prolog size 38, PerfScore 207.99, instruction count 675, allocated bytes for code 2920 (MethodHash=afd073f0) for method System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver:DeterminePropertyPolicies(System.Text.Json.Serialization.Metadata.JsonPropertyInfo,System.Reflection.MemberInfo) (Tier1)
+; Total bytes of code 2896, prolog size 38, PerfScore 207.99, instruction count 666, allocated bytes for code 2896 (MethodHash=afd073f0) for method System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver:DeterminePropertyPolicies(System.Text.Json.Serialization.Metadata.JsonPropertyInfo,System.Reflection.MemberInfo) (Tier1)
; ============================================================
Unwind Info:-7 (-0.82%) : 721018.dasm - Microsoft.CodeAnalysis.CSharp.BuiltInOperators:IsValidObjectEquality(Microsoft.CodeAnalysis.CSharp.Conversions,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,bool,bool,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,bool,bool,byref):bool (Tier1)
@@ -12,7 +12,7 @@
; V00 arg0 [V00,T03] ( 4, 2 ) ref -> rbp class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Conversions>
; V01 arg1 [V01,T00] ( 20, 8.46) ref -> rbx class-hnd <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
; V02 arg2 [V02,T01] ( 6, 3 ) ubyte -> rsi single-def
-; V03 arg3 [V03,T02] ( 6, 3 ) ubyte -> rdi single-def
+; V03 arg3 [V03,T02] ( 5, 3 ) ubyte -> rdi single-def
; V04 arg4 [V04,T04] ( 16, 3.46) ref -> r14 class-hnd <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
; V05 arg5 [V05,T11] ( 4, 0 ) ubyte -> [rsp+0xC8] single-def
; V06 arg6 [V06,T12] ( 4, 0 ) ubyte -> [rsp+0xD0] single-def
@@ -285,15 +285,13 @@ G_M30363_IG22: ; bbWeight=0, gcrefRegs=4028 {rbx rbp r14}, byrefRegs=0000
je G_M30363_IG13
;; size=50 bbWeight=0 PerfScore 0.00
G_M30363_IG23: ; bbWeight=0, gcrefRegs=4028 {rbx rbp r14}, byrefRegs=0000 {}, byref
- movzx rdx, dil
movzx r13, byte ptr [rsp+0xD0]
- movzx rcx, r13b
- and edx, ecx
- movzx rcx, dil
+ movzx rdx, r13b
movzx r15, byte ptr [rsp+0xC8]
- movzx r8, r15b
- and ecx, r8d
+ movzx rcx, r15b
or edx, ecx
+ movzx rcx, dil
+ and edx, ecx
movzx rcx, sil
movzx r8, r13b
and ecx, r8d
@@ -313,7 +311,7 @@ G_M30363_IG23: ; bbWeight=0, gcrefRegs=4028 {rbx rbp r14}, byrefRegs=0000
; byrRegs +[rsi]
mov bword ptr [rsp+0x28], rsi
; byr arg write
- ;; size=107 bbWeight=0 PerfScore 0.00
+ ;; size=100 bbWeight=0 PerfScore 0.00
G_M30363_IG24: ; bbWeight=0, gcrefRegs=4028 {rbx rbp r14}, byrefRegs=0040 {rsi}, byref, isz
mov dword ptr [rsp+0x30], edx
lea rdx, [rsp+0x50]
@@ -379,7 +377,7 @@ G_M30363_IG27: ; bbWeight=0, epilog, nogc, extend
ret
;; size=15 bbWeight=0 PerfScore 0.00
-; Total bytes of code 857, prolog size 24, PerfScore 53.87, instruction count 214, allocated bytes for code 857 (MethodHash=f1078964) for method Microsoft.CodeAnalysis.CSharp.BuiltInOperators:IsValidObjectEquality(Microsoft.CodeAnalysis.CSharp.Conversions,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,bool,bool,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,bool,bool,byref):bool (Tier1)
+; Total bytes of code 850, prolog size 24, PerfScore 53.87, instruction count 212, allocated bytes for code 850 (MethodHash=f1078964) for method Microsoft.CodeAnalysis.CSharp.BuiltInOperators:IsValidObjectEquality(Microsoft.CodeAnalysis.CSharp.Conversions,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,bool,bool,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,bool,bool,byref):bool (Tier1)
; ============================================================
Unwind Info:-16 (-0.77%) : 650268.dasm - System.Text.Json.Serialization.Metadata.JsonPolymorphismOptions:CreateFromAttributeDeclarations(System.Type):System.Text.Json.Serialization.Metadata.JsonPolymorphismOptions (Tier1)
@@ -22,7 +22,7 @@
;* V10 tmp5 [V10 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Text.Json.Serialization.Metadata.JsonDerivedType>
; V11 tmp6 [V11,T52] ( 4, 1.22) ref -> rsi class-hnd exact "NewObj constructor temp" <System.Text.Json.Serialization.Metadata.JsonPolymorphismOptions>
; V12 tmp7 [V12,T63] ( 8, 0.05) ref -> rsi class-hnd exact single-def "NewObj constructor temp" <System.Text.Json.Serialization.Metadata.JsonPolymorphismOptions>
-; V13 tmp8 [V13,T81] ( 2, 0 ) byref -> rcx single-def "guarded devirt return temp"
+; V13 tmp8 [V13,T79] ( 2, 0 ) byref -> rcx single-def "guarded devirt return temp"
;* V14 tmp9 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "guarded devirt this exact temp" <System.Text.Json.Serialization.JsonDerivedTypeAttribute[]>
;* V15 tmp10 [V15 ] ( 0, 0 ) ref -> zero-ref "guarded devirt return temp"
;* V16 tmp11 [V16 ] ( 0, 0 ) byref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.SZGenericArrayEnumerator`1[System.Text.Json.Serialization.JsonDerivedTypeAttribute]>
@@ -50,7 +50,7 @@
; V38 tmp33 [V38,T69] ( 6, 0 ) ref -> r15 class-hnd "Inline stloc first use temp" <System.RuntimeType>
;* V39 tmp34 [V39,T86] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V40 tmp35 [V40,T71] ( 5, 0 ) ref -> r12 class-hnd exact "Inline stloc first use temp" <System.RuntimeType>
-; V41 tmp36 [V41,T79] ( 3, 0 ) int -> rax "Inline stloc first use temp"
+; V41 tmp36 [V41,T83] ( 2, 0 ) int -> rax "Inline stloc first use temp"
;* V42 tmp37 [V42 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V43 tmp38 [V43,T46] ( 2, 2 ) int -> rcx
;* V44 tmp39 [V44 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
@@ -91,7 +91,7 @@
; V79 tmp74 [V79,T70] ( 6, 0 ) ref -> r12 class-hnd "Inline stloc first use temp" <System.RuntimeType>
;* V80 tmp75 [V80,T87] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V81 tmp76 [V81,T72] ( 5, 0 ) ref -> [rbp-0x60] class-hnd exact spill-single-def "Inline stloc first use temp" <System.RuntimeType>
-; V82 tmp77 [V82,T80] ( 3, 0 ) int -> rax "Inline stloc first use temp"
+; V82 tmp77 [V82,T84] ( 2, 0 ) int -> rax "Inline stloc first use temp"
;* V83 tmp78 [V83 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V84 tmp79 [V84,T47] ( 2, 2.00) int -> rcx
;* V85 tmp80 [V85 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
@@ -140,11 +140,11 @@
;* V128 tmp123 [V128,T85] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
;* V129 tmp124 [V129 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
;* V130 tmp125 [V130,T60] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
-; V131 tmp126 [V131,T82] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V131 tmp126 [V131,T80] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
; V132 tmp127 [V132,T29] ( 2, 3.02) long -> rax "Cast away GC"
-; V133 tmp128 [V133,T83] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
+; V133 tmp128 [V133,T81] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
; V134 tmp129 [V134,T49] ( 2, 1.60) ref -> rcx single-def "argument with side effect"
-; V135 tmp130 [V135,T84] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V135 tmp130 [V135,T82] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
; V136 tmp131 [V136 ] ( 12, 10.18) struct (16) [rbp-0x48] do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.Text.Json.Serialization.Metadata.JsonDerivedType>
;* V137 tmp132 [V137 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
; V138 cse0 [V138,T12] ( 9, 4.28) ref -> rdi "CSE #01: aggressive"
@@ -723,12 +723,9 @@ G_M47957_IG63: ; bbWeight=0, gcrefRegs=C0C8 {rbx rsi rdi r14 r15}, byrefR
call [System.RuntimeType:get_GenericParameterAttributes():int:this]
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M47957_IG65
- ;; size=71 bbWeight=0 PerfScore 0.00
+ ;; size=63 bbWeight=0 PerfScore 0.00
G_M47957_IG64: ; bbWeight=0, gcrefRegs=50C8 {rbx rsi rdi r12 r14}, byrefRegs=0000 {}, byref
; gcrRegs -[r15]
mov r15, r12
@@ -939,12 +936,9 @@ G_M47957_IG78: ; bbWeight=0, gcrefRegs=30C8 {rbx rsi rdi r12 r13}, byrefR
call [System.RuntimeType:get_GenericParameterAttributes():int:this]
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M47957_IG80
- ;; size=78 bbWeight=0 PerfScore 0.00
+ ;; size=70 bbWeight=0 PerfScore 0.00
G_M47957_IG79: ; bbWeight=0, gcrefRegs=20C8 {rbx rsi rdi r13}, byrefRegs=0000 {}, byref
; gcrRegs -[r12]
mov r12, gword ptr [rbp-0x60]
@@ -1174,7 +1168,7 @@ G_M47957_IG97: ; bbWeight=0.00, funclet epilog, nogc, extend
ret
;; size=5 bbWeight=0.00 PerfScore 0.00
-; Total bytes of code 2086, prolog size 37, PerfScore 160.14, instruction count 488, allocated bytes for code 2086 (MethodHash=24ac44aa) for method System.Text.Json.Serialization.Metadata.JsonPolymorphismOptions:CreateFromAttributeDeclarations(System.Type):System.Text.Json.Serialization.Metadata.JsonPolymorphismOptions (Tier1)
+; Total bytes of code 2070, prolog size 37, PerfScore 160.14, instruction count 482, allocated bytes for code 2070 (MethodHash=24ac44aa) for method System.Text.Json.Serialization.Metadata.JsonPolymorphismOptions:CreateFromAttributeDeclarations(System.Type):System.Text.Json.Serialization.Metadata.JsonPolymorphismOptions (Tier1)
; ============================================================
Unwind Info:-8 (-0.73%) : 650507.dasm - System.Text.Json.Reflection.ReflectionExtensions:HasJsonConstructorAttribute(System.Reflection.ConstructorInfo):bool (Tier1)
@@ -32,7 +32,7 @@
; V19 tmp18 [V19,T34] ( 6, 0 ) ref -> rbp class-hnd "Inline stloc first use temp" <System.RuntimeType>
;* V20 tmp19 [V20,T42] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V21 tmp20 [V21,T35] ( 5, 0 ) ref -> r15 class-hnd exact "Inline stloc first use temp" <System.RuntimeType>
-; V22 tmp21 [V22,T39] ( 3, 0 ) int -> rax "Inline stloc first use temp"
+; V22 tmp21 [V22,T41] ( 2, 0 ) int -> rax "Inline stloc first use temp"
;* V23 tmp22 [V23 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V24 tmp23 [V24,T21] ( 2, 2 ) int -> rcx
;* V25 tmp24 [V25 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
@@ -82,9 +82,9 @@
; V69 tmp68 [V69 ] ( 6, 2.38) int -> [rsp+0x60] do-not-enreg[X] addr-exposed "field V57._count (fldOffset=0x10)" P-DEP
; V70 tmp69 [V70 ] ( 2, 1.11) int -> [rsp+0x64] do-not-enreg[X] addr-exposed "field V57._capacity (fldOffset=0x14)" P-DEP
; V71 tmp70 [V71,T08] ( 2, 3.02) long -> rax "Cast away GC"
-; V72 tmp71 [V72,T40] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
+; V72 tmp71 [V72,T39] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
; V73 tmp72 [V73,T23] ( 2, 1.54) ref -> rcx single-def "argument with side effect"
-; V74 tmp73 [V74,T41] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V74 tmp73 [V74,T40] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
;* V75 tmp74 [V75 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
; V76 cse0 [V76,T02] ( 9, 4.20) ref -> rsi "CSE #01: aggressive"
; V77 rat0 [V77,T36] ( 5, 0 ) long -> r14 "Widened IV V20"
@@ -466,12 +466,9 @@ G_M19341_IG38: ; bbWeight=0, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=
call [System.RuntimeType:get_GenericParameterAttributes():int:this]
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M19341_IG40
- ;; size=71 bbWeight=0 PerfScore 0.00
+ ;; size=63 bbWeight=0 PerfScore 0.00
G_M19341_IG39: ; bbWeight=0, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rbp]
mov rbp, r15
@@ -612,7 +609,7 @@ G_M19341_IG51: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1092, prolog size 34, PerfScore 77.67, instruction count 255, allocated bytes for code 1092 (MethodHash=0b3eb472) for method System.Text.Json.Reflection.ReflectionExtensions:HasJsonConstructorAttribute(System.Reflection.ConstructorInfo):bool (Tier1)
+; Total bytes of code 1084, prolog size 34, PerfScore 77.67, instruction count 252, allocated bytes for code 1084 (MethodHash=0b3eb472) for method System.Text.Json.Reflection.ReflectionExtensions:HasJsonConstructorAttribute(System.Reflection.ConstructorInfo):bool (Tier1)
; ============================================================
Unwind Info:-8 (-0.73%) : 409713.dasm - Xunit.Sdk.ReflectionAttributeInfo+<>c:<GetAttributeUsage>b__12_0(System.Type):System.AttributeUsageAttribute:this (Tier1)
@@ -36,7 +36,7 @@
; V24 tmp22 [V24,T32] ( 6, 0 ) ref -> r14 class-hnd "Inline stloc first use temp" <System.RuntimeType>
;* V25 tmp23 [V25,T42] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V26 tmp24 [V26,T33] ( 5, 0 ) ref -> r13 class-hnd exact "Inline stloc first use temp" <System.RuntimeType>
-; V27 tmp25 [V27,T38] ( 3, 0 ) int -> rax "Inline stloc first use temp"
+; V27 tmp25 [V27,T41] ( 2, 0 ) int -> rax "Inline stloc first use temp"
;* V28 tmp26 [V28 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V29 tmp27 [V29,T24] ( 2, 2 ) int -> rcx
;* V30 tmp28 [V30 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
@@ -72,10 +72,10 @@
;* V60 tmp58 [V60 ] ( 0, 0 ) long -> zero-ref "field V35.m_asTAddr (fldOffset=0x0)" P-INDEP
;* V61 tmp59 [V61,T29] ( 0, 0 ) long -> zero-ref "field V38.m_asTAddr (fldOffset=0x0)" P-INDEP
; V62 tmp60 [V62,T13] ( 2, 3.71) long -> rax "Cast away GC"
-; V63 tmp61 [V63,T39] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
+; V63 tmp61 [V63,T38] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
;* V64 tmp62 [V64 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
-; V65 tmp63 [V65,T40] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
-; V66 tmp64 [V66,T41] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V65 tmp63 [V65,T39] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
+; V66 tmp64 [V66,T40] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
; V67 cse0 [V67,T06] ( 9, 4.28) ref -> rbx "CSE #01: aggressive"
; V68 rat0 [V68,T34] ( 5, 0 ) long -> r15 "Widened IV V25"
; V69 rat1 [V69,T04] ( 4, 6 ) ref -> rcx "replacement local"
@@ -447,12 +447,9 @@ G_M35716_IG38: ; bbWeight=0, gcrefRegs=40C8 {rbx rsi rdi r14}, byrefRegs=
call [System.RuntimeType:get_GenericParameterAttributes():int:this]
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M35716_IG40
- ;; size=71 bbWeight=0 PerfScore 0.00
+ ;; size=63 bbWeight=0 PerfScore 0.00
G_M35716_IG39: ; bbWeight=0, gcrefRegs=20C8 {rbx rsi rdi r13}, byrefRegs=0000 {}, byref
; gcrRegs -[r14]
mov r14, r13
@@ -595,7 +592,7 @@ G_M35716_IG50: ; bbWeight=0, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byr
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1100, prolog size 22, PerfScore 83.71, instruction count 249, allocated bytes for code 1100 (MethodHash=c896747b) for method Xunit.Sdk.ReflectionAttributeInfo+<>c:<GetAttributeUsage>b__12_0(System.Type):System.AttributeUsageAttribute:this (Tier1)
+; Total bytes of code 1092, prolog size 22, PerfScore 83.71, instruction count 246, allocated bytes for code 1092 (MethodHash=c896747b) for method Xunit.Sdk.ReflectionAttributeInfo+<>c:<GetAttributeUsage>b__12_0(System.Type):System.AttributeUsageAttribute:this (Tier1)
; ============================================================
Unwind Info:-8 (-0.72%) : 650508.dasm - System.Reflection.CustomAttributeExtensions:GetCustomAttribute[System.__Canon](System.Reflection.MemberInfo):System.__Canon (Tier1)
@@ -33,7 +33,7 @@
; V20 tmp18 [V20,T38] ( 6, 0 ) ref -> r14 class-hnd "Inline stloc first use temp" <System.RuntimeType>
;* V21 tmp19 [V21,T47] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V22 tmp20 [V22,T39] ( 5, 0 ) ref -> r13 class-hnd exact "Inline stloc first use temp" <System.RuntimeType>
-; V23 tmp21 [V23,T43] ( 3, 0 ) int -> rax "Inline stloc first use temp"
+; V23 tmp21 [V23,T46] ( 2, 0 ) int -> rax "Inline stloc first use temp"
;* V24 tmp22 [V24 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V25 tmp23 [V25,T26] ( 3, 2 ) int -> rcx
;* V26 tmp24 [V26 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
@@ -83,11 +83,11 @@
; V70 tmp68 [V70 ] ( 6, 2.38) int -> [rsp+0x60] do-not-enreg[X] addr-exposed "field V58._count (fldOffset=0x10)" P-DEP
; V71 tmp69 [V71 ] ( 2, 1.11) int -> [rsp+0x64] do-not-enreg[X] addr-exposed "field V58._capacity (fldOffset=0x14)" P-DEP
; V72 tmp70 [V72,T09] ( 2, 3.02) long -> rax "Cast away GC"
-; V73 tmp71 [V73,T44] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
-; V74 tmp72 [V74,T45] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V73 tmp71 [V73,T43] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
+; V74 tmp72 [V74,T44] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
; V75 tmp73 [V75,T29] ( 2, 1.54) ref -> rcx single-def "argument with side effect"
; V76 tmp74 [V76,T30] ( 2, 1.54) ref -> rdx single-def "argument with side effect"
-; V77 tmp75 [V77,T46] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V77 tmp75 [V77,T45] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
;* V78 tmp76 [V78 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
; V79 cse0 [V79,T02] ( 11, 6.75) ref -> rdi "CSE #03: aggressive"
; V80 cse1 [V80,T16] ( 4, 2.50) long -> rsi "CSE #02: moderate"
@@ -494,12 +494,9 @@ G_M63423_IG42: ; bbWeight=0, gcrefRegs=40A8 {rbx rbp rdi r14}, byrefRegs=
call [System.RuntimeType:get_GenericParameterAttributes():int:this]
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M63423_IG44
- ;; size=71 bbWeight=0 PerfScore 0.00
+ ;; size=63 bbWeight=0 PerfScore 0.00
G_M63423_IG43: ; bbWeight=0, gcrefRegs=20A8 {rbx rbp rdi r13}, byrefRegs=0000 {}, byref
; gcrRegs -[r14]
mov r14, r13
@@ -636,7 +633,7 @@ G_M63423_IG54: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1115, prolog size 41, PerfScore 91.17, instruction count 269, allocated bytes for code 1115 (MethodHash=c16b0840) for method System.Reflection.CustomAttributeExtensions:GetCustomAttribute[System.__Canon](System.Reflection.MemberInfo):System.__Canon (Tier1)
+; Total bytes of code 1107, prolog size 41, PerfScore 91.17, instruction count 266, allocated bytes for code 1107 (MethodHash=c16b0840) for method System.Reflection.CustomAttributeExtensions:GetCustomAttribute[System.__Canon](System.Reflection.MemberInfo):System.__Canon (Tier1)
; ============================================================
Unwind Info:-16 (-0.70%) : 650540.dasm - System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver:DeterminePropertyName(System.Text.Json.Serialization.Metadata.JsonPropertyInfo,System.Reflection.MemberInfo,System.Text.Json.JsonNamingPolicy) (Tier1)
@@ -48,7 +48,7 @@
; V36 tmp30 [V36,T81] ( 6, 0 ) ref -> r15 class-hnd "Inline stloc first use temp" <System.RuntimeType>
;* V37 tmp31 [V37,T97] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V38 tmp32 [V38,T83] ( 5, 0 ) ref -> r12 class-hnd exact "Inline stloc first use temp" <System.RuntimeType>
-; V39 tmp33 [V39,T91] ( 3, 0 ) int -> rax "Inline stloc first use temp"
+; V39 tmp33 [V39,T93] ( 2, 0 ) int -> rax "Inline stloc first use temp"
;* V40 tmp34 [V40 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V41 tmp35 [V41,T50] ( 2, 2 ) int -> rcx
;* V42 tmp36 [V42 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
@@ -109,7 +109,7 @@
; V97 tmp91 [V97,T82] ( 6, 0 ) ref -> r12 class-hnd "Inline stloc first use temp" <System.RuntimeType>
;* V98 tmp92 [V98,T98] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V99 tmp93 [V99,T84] ( 5, 0 ) ref -> [rsp+0x38] class-hnd exact spill-single-def "Inline stloc first use temp" <System.RuntimeType>
-; V100 tmp94 [V100,T92] ( 3, 0 ) int -> rax "Inline stloc first use temp"
+; V100 tmp94 [V100,T94] ( 2, 0 ) int -> rax "Inline stloc first use temp"
;* V101 tmp95 [V101 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V102 tmp96 [V102,T55] ( 2, 1.98) int -> rcx
;* V103 tmp97 [V103 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
@@ -174,11 +174,11 @@
;* V162 tmp156 [V162,T95] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
;* V163 tmp157 [V163 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
;* V164 tmp158 [V164,T69] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
-; V165 tmp159 [V165,T93] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V165 tmp159 [V165,T91] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
; V166 tmp160 [V166,T27] ( 2, 2.98) long -> rax "Cast away GC"
;* V167 tmp161 [V167,T96] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
;* V168 tmp162 [V168,T70] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
-; V169 tmp163 [V169,T94] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V169 tmp163 [V169,T92] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
;* V170 tmp164 [V170 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
; V171 cse0 [V171,T75] ( 3, 0.02) long -> rbx "CSE #21: conservative"
; V172 cse1 [V172,T08] ( 9, 4.20) ref -> rbp "CSE #01: aggressive"
@@ -855,12 +855,9 @@ G_M51670_IG74: ; bbWeight=0, gcrefRegs=C0E8 {rbx rbp rsi rdi r14 r15}, by
call [System.RuntimeType:get_GenericParameterAttributes():int:this]
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M51670_IG76
- ;; size=71 bbWeight=0 PerfScore 0.00
+ ;; size=63 bbWeight=0 PerfScore 0.00
G_M51670_IG75: ; bbWeight=0, gcrefRegs=50E8 {rbx rbp rsi rdi r12 r14}, byrefRegs=0000 {}, byref
; gcrRegs -[r15]
mov r15, r12
@@ -1051,12 +1048,9 @@ G_M51670_IG90: ; bbWeight=0, gcrefRegs=30E8 {rbx rbp rsi rdi r12 r13}, by
call [System.RuntimeType:get_GenericParameterAttributes():int:this]
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M51670_IG92
- ;; size=82 bbWeight=0 PerfScore 0.00
+ ;; size=74 bbWeight=0 PerfScore 0.00
G_M51670_IG91: ; bbWeight=0, gcrefRegs=20E8 {rbx rbp rsi rdi r13}, byrefRegs=0000 {}, byref
; gcrRegs -[r12]
mov r12, gword ptr [rsp+0x38]
@@ -1294,7 +1288,7 @@ G_M51670_IG112: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 2273, prolog size 44, PerfScore 152.50, instruction count 523, allocated bytes for code 2273 (MethodHash=c45f3629) for method System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver:DeterminePropertyName(System.Text.Json.Serialization.Metadata.JsonPropertyInfo,System.Reflection.MemberInfo,System.Text.Json.JsonNamingPolicy) (Tier1)
+; Total bytes of code 2257, prolog size 44, PerfScore 152.50, instruction count 517, allocated bytes for code 2257 (MethodHash=c45f3629) for method System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver:DeterminePropertyName(System.Text.Json.Serialization.Metadata.JsonPropertyInfo,System.Reflection.MemberInfo,System.Text.Json.JsonNamingPolicy) (Tier1)
; ============================================================
Unwind Info:-17 (-0.69%) : 134572.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateMethods(System.RuntimeType+RuntimeTypeCache+Filter):System.Reflection.RuntimeMethodInfo[]:this (Tier1)
@@ -27,7 +27,7 @@
;* V15 loc13 [V15 ] ( 0, 0 ) int -> zero-ref
; V16 loc14 [V16,T36] ( 2, 2.00) int -> r12
; V17 loc15 [V17,T03] ( 10, 22.58) long -> [rbp+0x60] ld-addr-op
-; V18 loc16 [V18,T42] ( 11, 0.67) int -> [rbp+0x5C]
+; V18 loc16 [V18,T42] ( 10, 0.67) int -> [rbp+0x5C]
; V19 loc17 [V19,T50] ( 3, 0.25) int -> [rbp+0x58]
; V20 loc18 [V20,T54] ( 4, 0.17) ubyte -> r10
; V21 loc19 [V21,T56] ( 6, 0.08) int -> [rbp+0x54] ptr
@@ -976,13 +976,7 @@ G_M27271_IG76: ; bbWeight=0, gcrefRegs=00C0 {rsi rdi}, byrefRegs=4008 {rb
jmp G_M27271_IG25
;; size=14 bbWeight=0 PerfScore 0.00
G_M27271_IG77: ; bbWeight=0, gcrefRegs=00C0 {rsi rdi}, byrefRegs=4008 {rbx r14}, byref, isz
- mov eax, dword ptr [rbp+0x5C]
- mov ecx, eax
- and ecx, 0x400
- mov dword ptr [rbp+0x5C], eax
- mov r10d, eax
- and r10d, 64
- or ecx, r10d
+ test dword ptr [rbp+0x5C], 0x440
jne SHORT G_M27271_IG78
mov dword ptr [rbp+0x54], r9d
mov qword ptr [rbp+0x60], rdx
@@ -997,7 +991,7 @@ G_M27271_IG77: ; bbWeight=0, gcrefRegs=00C0 {rsi rdi}, byrefRegs=4008 {rb
je SHORT G_M27271_IG79
mov rdx, qword ptr [rbp+0x60]
mov r9d, dword ptr [rbp+0x54]
- ;; size=64 bbWeight=0 PerfScore 0.00
+ ;; size=47 bbWeight=0 PerfScore 0.00
G_M27271_IG78: ; bbWeight=0, gcrefRegs=00C0 {rsi rdi}, byrefRegs=4008 {rbx r14}, byref, isz
; gcrRegs -[rax]
cmp r9d, r15d
@@ -1166,7 +1160,7 @@ G_M27271_IG94: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 2456, prolog size 62, PerfScore 481.46, instruction count 564, allocated bytes for code 2456 (MethodHash=20c79578) for method System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateMethods(System.RuntimeType+RuntimeTypeCache+Filter):System.Reflection.RuntimeMethodInfo[]:this (Tier1)
+; Total bytes of code 2439, prolog size 62, PerfScore 481.46, instruction count 558, allocated bytes for code 2439 (MethodHash=20c79578) for method System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateMethods(System.RuntimeType+RuntimeTypeCache+Filter):System.Reflection.RuntimeMethodInfo[]:this (Tier1)
; ============================================================
Unwind Info:-8 (-0.67%) : 269942.dasm - System.Resources.ManifestBasedResourceGroveler:GetNeutralResourcesLanguage(System.Reflection.Assembly,byref):System.Globalization.CultureInfo (Tier1)
@@ -16,13 +16,13 @@
;* V04 loc2 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <<unknown class>>
; V05 OutArgs [V05 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <UNNAMED>
; V06 tmp1 [V06,T37] ( 3, 0 ) ref -> rsi class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
-; V07 tmp2 [V07,T44] ( 2, 0 ) ref -> rdi class-hnd exact single-def "impImportAndPushBox" <System.String>
+; V07 tmp2 [V07,T43] ( 2, 0 ) ref -> rdi class-hnd exact single-def "impImportAndPushBox" <System.String>
; V08 tmp3 [V08,T38] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
; V09 tmp4 [V09,T33] ( 5, 0.00) ref -> rbx class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
-; V10 tmp5 [V10,T45] ( 2, 0.00) ref -> rsi class-hnd exact single-def "non-inline candidate call" <System.String>
+; V10 tmp5 [V10,T44] ( 2, 0.00) ref -> rsi class-hnd exact single-def "non-inline candidate call" <System.String>
; V11 tmp6 [V11,T39] ( 3, 0.00) ref -> rdi class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
;* V12 tmp7 [V12 ] ( 0, 0 ) ref -> zero-ref single-def
-; V13 tmp8 [V13,T46] ( 2, 0.00) ref -> rsi single-def
+; V13 tmp8 [V13,T45] ( 2, 0.00) ref -> rsi single-def
;* V14 tmp9 [V14 ] ( 0, 0 ) ref -> zero-ref single-def
;* V15 tmp10 [V15 ] ( 0, 0 ) ref -> zero-ref single-def
;* V16 tmp11 [V16 ] ( 0, 0 ) ref -> zero-ref single-def
@@ -46,7 +46,7 @@
; V34 tmp29 [V34,T32] ( 6, 0 ) ref -> r14 class-hnd "Inline stloc first use temp" <System.RuntimeType>
;* V35 tmp30 [V35,T52] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V36 tmp31 [V36,T34] ( 5, 0 ) ref -> r13 class-hnd exact "Inline stloc first use temp" <System.RuntimeType>
-; V37 tmp32 [V37,T43] ( 3, 0 ) int -> rax "Inline stloc first use temp"
+; V37 tmp32 [V37,T50] ( 2, 0 ) int -> rax "Inline stloc first use temp"
;* V38 tmp33 [V38 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V39 tmp34 [V39,T26] ( 2, 2 ) int -> rax
;* V40 tmp35 [V40 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
@@ -86,10 +86,10 @@
;* V74 tmp69 [V74 ] ( 0, 0 ) long -> zero-ref "field V45.m_asTAddr (fldOffset=0x0)" P-INDEP
;* V75 tmp70 [V75,T31] ( 0, 0 ) long -> zero-ref "field V48.m_asTAddr (fldOffset=0x0)" P-INDEP
; V76 tmp71 [V76,T11] ( 2, 3.89) long -> rax "Cast away GC"
-; V77 tmp72 [V77,T47] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
-; V78 tmp73 [V78,T48] ( 2, 0.00) ref -> r8 single-def "argument with side effect"
-; V79 tmp74 [V79,T49] ( 2, 0.00) ref -> rdx single-def "argument with side effect"
-; V80 tmp75 [V80,T50] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V77 tmp72 [V77,T46] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V78 tmp73 [V78,T47] ( 2, 0.00) ref -> r8 single-def "argument with side effect"
+; V79 tmp74 [V79,T48] ( 2, 0.00) ref -> rdx single-def "argument with side effect"
+; V80 tmp75 [V80,T49] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
;* V81 tmp76 [V81 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
; V82 cse0 [V82,T04] ( 7, 3.97) ref -> rsi "CSE #02: aggressive"
; V83 cse1 [V83,T18] ( 3, 3 ) int -> rcx "CSE #08: moderate"
@@ -377,12 +377,9 @@ G_M33009_IG26: ; bbWeight=0, gcrefRegs=40C0 {rsi rdi r14}, byrefRegs=0008
call [System.RuntimeType:get_GenericParameterAttributes():int:this]
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M33009_IG28
- ;; size=71 bbWeight=0 PerfScore 0.00
+ ;; size=63 bbWeight=0 PerfScore 0.00
G_M33009_IG27: ; bbWeight=0, gcrefRegs=20C0 {rsi rdi r13}, byrefRegs=0008 {rbx}, byref
; gcrRegs -[r14]
mov r14, r13
@@ -722,7 +719,7 @@ G_M33009_IG52: ; bbWeight=0.00, funclet epilog, nogc, extend
ret
;; size=5 bbWeight=0.00 PerfScore 0.00
-; Total bytes of code 1193, prolog size 26, PerfScore 84.93, instruction count 292, allocated bytes for code 1193 (MethodHash=abb37f0e) for method System.Resources.ManifestBasedResourceGroveler:GetNeutralResourcesLanguage(System.Reflection.Assembly,byref):System.Globalization.CultureInfo (Tier1)
+; Total bytes of code 1185, prolog size 26, PerfScore 84.93, instruction count 289, allocated bytes for code 1185 (MethodHash=abb37f0e) for method System.Resources.ManifestBasedResourceGroveler:GetNeutralResourcesLanguage(System.Reflection.Assembly,byref):System.Globalization.CultureInfo (Tier1)
; ============================================================
Unwind Info:-8 (-0.67%) : 650543.dasm - System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver:DeterminePropertyIsRequired(System.Text.Json.Serialization.Metadata.JsonPropertyInfo,System.Reflection.MemberInfo,bool) (Tier1)
@@ -37,7 +37,7 @@
; V25 tmp22 [V25,T38] ( 6, 0 ) ref -> r15 class-hnd "Inline stloc first use temp" <System.RuntimeType>
;* V26 tmp23 [V26,T46] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V27 tmp24 [V27,T39] ( 5, 0 ) ref -> r12 class-hnd exact "Inline stloc first use temp" <System.RuntimeType>
-; V28 tmp25 [V28,T43] ( 3, 0 ) int -> rax "Inline stloc first use temp"
+; V28 tmp25 [V28,T44] ( 2, 0 ) int -> rax "Inline stloc first use temp"
;* V29 tmp26 [V29 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V30 tmp27 [V30,T25] ( 2, 2 ) int -> rcx
;* V31 tmp28 [V31 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
@@ -94,7 +94,7 @@
; V82 tmp79 [V82,T11] ( 2, 3.02) long -> rax "Cast away GC"
;* V83 tmp80 [V83,T45] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
;* V84 tmp81 [V84,T33] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
-; V85 tmp82 [V85,T44] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V85 tmp82 [V85,T43] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
;* V86 tmp83 [V86 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
; V87 cse0 [V87,T05] ( 9, 4.20) ref -> rbp "CSE #01: aggressive"
; V88 rat0 [V88,T40] ( 5, 0 ) long -> r13 "Widened IV V26"
@@ -506,12 +506,9 @@ G_M5912_IG43: ; bbWeight=0, gcrefRegs=C068 {rbx rbp rsi r14 r15}, byrefRe
call [System.RuntimeType:get_GenericParameterAttributes():int:this]
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M5912_IG45
- ;; size=71 bbWeight=0 PerfScore 0.00
+ ;; size=63 bbWeight=0 PerfScore 0.00
G_M5912_IG44: ; bbWeight=0, gcrefRegs=5068 {rbx rbp rsi r12 r14}, byrefRegs=0000 {}, byref
; gcrRegs -[r15]
mov r15, r12
@@ -673,7 +670,7 @@ G_M5912_IG59: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1203, prolog size 38, PerfScore 91.29, instruction count 281, allocated bytes for code 1203 (MethodHash=f36be8e7) for method System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver:DeterminePropertyIsRequired(System.Text.Json.Serialization.Metadata.JsonPropertyInfo,System.Reflection.MemberInfo,bool) (Tier1)
+; Total bytes of code 1195, prolog size 38, PerfScore 91.29, instruction count 278, allocated bytes for code 1195 (MethodHash=f36be8e7) for method System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver:DeterminePropertyIsRequired(System.Text.Json.Serialization.Metadata.JsonPropertyInfo,System.Reflection.MemberInfo,bool) (Tier1)
; ============================================================
Unwind Info:-32 (-0.61%) : 512583.dasm - Xunit.Sdk.XunitTestCaseRunner:GetBeforeAfterTestAttributes():System.Collections.Generic.List`1[Xunit.Sdk.BeforeAfterTestAttribute]:this (Tier1)
@@ -52,7 +52,7 @@
; V40 tmp37 [V40,T150] ( 6, 0 ) ref -> r14 class-hnd "Inline stloc first use temp" <System.RuntimeType>
;* V41 tmp38 [V41,T197] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V42 tmp39 [V42,T154] ( 5, 0 ) ref -> r13 class-hnd exact "Inline stloc first use temp" <System.RuntimeType>
-; V43 tmp40 [V43,T179] ( 3, 0 ) int -> rax "Inline stloc first use temp"
+; V43 tmp40 [V43,T193] ( 2, 0 ) int -> rax "Inline stloc first use temp"
;* V44 tmp41 [V44 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V45 tmp42 [V45,T115] ( 2, 2 ) int -> rcx
;* V46 tmp43 [V46 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
@@ -96,7 +96,7 @@
; V84 tmp81 [V84,T151] ( 6, 0 ) ref -> r15 class-hnd "Inline stloc first use temp" <System.RuntimeType>
;* V85 tmp82 [V85,T198] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V86 tmp83 [V86,T155] ( 5, 0 ) ref -> r12 class-hnd exact "Inline stloc first use temp" <System.RuntimeType>
-; V87 tmp84 [V87,T180] ( 3, 0 ) int -> rax "Inline stloc first use temp"
+; V87 tmp84 [V87,T194] ( 2, 0 ) int -> rax "Inline stloc first use temp"
;* V88 tmp85 [V88 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V89 tmp86 [V89,T116] ( 2, 2.00) int -> rcx
;* V90 tmp87 [V90 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
@@ -141,7 +141,7 @@
; V129 tmp126 [V129,T152] ( 6, 0 ) ref -> r13 class-hnd "Inline stloc first use temp" <System.RuntimeType>
;* V130 tmp127 [V130,T199] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V131 tmp128 [V131,T156] ( 5, 0 ) ref -> [rsp+0x38] class-hnd exact spill-single-def "Inline stloc first use temp" <System.RuntimeType>
-; V132 tmp129 [V132,T181] ( 3, 0 ) int -> rax "Inline stloc first use temp"
+; V132 tmp129 [V132,T195] ( 2, 0 ) int -> rax "Inline stloc first use temp"
;* V133 tmp130 [V133 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V134 tmp131 [V134,T117] ( 2, 2.00) int -> rcx
;* V135 tmp132 [V135 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
@@ -194,7 +194,7 @@
; V182 tmp179 [V182,T153] ( 6, 0 ) ref -> r15 class-hnd "Inline stloc first use temp" <System.RuntimeType>
;* V183 tmp180 [V183,T200] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V184 tmp181 [V184,T157] ( 5, 0 ) ref -> r12 class-hnd exact "Inline stloc first use temp" <System.RuntimeType>
-; V185 tmp182 [V185,T182] ( 3, 0 ) int -> rax "Inline stloc first use temp"
+; V185 tmp182 [V185,T196] ( 2, 0 ) int -> rax "Inline stloc first use temp"
;* V186 tmp183 [V186 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V187 tmp184 [V187,T118] ( 2, 2.00) int -> rcx
;* V188 tmp185 [V188 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
@@ -321,27 +321,27 @@
; V309 tmp306 [V309,T120] ( 2, 2.00) long -> rcx "field V249.m_asTAddr (fldOffset=0x0)" P-INDEP
;* V310 tmp307 [V310 ] ( 0, 0 ) ref -> zero-ref single-def "field V251.m_type (fldOffset=0x0)" P-INDEP
; V311 tmp308 [V311,T51] ( 2, 3.88) long -> rax "Cast away GC"
-; V312 tmp309 [V312,T183] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
+; V312 tmp309 [V312,T179] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
;* V313 tmp310 [V313 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
-; V314 tmp311 [V314,T184] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
+; V314 tmp311 [V314,T180] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
; V315 tmp312 [V315,T52] ( 2, 3.88) long -> rax "Cast away GC"
-; V316 tmp313 [V316,T185] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
+; V316 tmp313 [V316,T181] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
;* V317 tmp314 [V317 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
-; V318 tmp315 [V318,T186] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
+; V318 tmp315 [V318,T182] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
; V319 tmp316 [V319,T53] ( 2, 3.88) long -> rax "Cast away GC"
-; V320 tmp317 [V320,T187] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
+; V320 tmp317 [V320,T183] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
;* V321 tmp318 [V321 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
-; V322 tmp319 [V322,T188] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
-; V323 tmp320 [V323,T189] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
-; V324 tmp321 [V324,T190] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
-; V325 tmp322 [V325,T191] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V322 tmp319 [V322,T184] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
+; V323 tmp320 [V323,T185] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V324 tmp321 [V324,T186] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V325 tmp322 [V325,T187] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
; V326 tmp323 [V326,T54] ( 2, 3.88) long -> rax "Cast away GC"
-; V327 tmp324 [V327,T192] ( 2, 0 ) ref -> r8 single-def "argument with side effect"
-; V328 tmp325 [V328,T193] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
-; V329 tmp326 [V329,T194] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
-; V330 tmp327 [V330,T195] ( 2, 0 ) ref -> r8 "argument with side effect"
+; V327 tmp324 [V327,T188] ( 2, 0 ) ref -> r8 single-def "argument with side effect"
+; V328 tmp325 [V328,T189] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V329 tmp326 [V329,T190] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V330 tmp327 [V330,T191] ( 2, 0 ) ref -> r8 "argument with side effect"
;* V331 tmp328 [V331 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
-; V332 tmp329 [V332,T196] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V332 tmp329 [V332,T192] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
; V333 cse0 [V333,T65] ( 6, 3.00) long -> r13 "CSE #23: conservative"
; V334 cse1 [V334,T148] ( 3, 0.26) long -> rsi "CSE #28: conservative"
; V335 cse2 [V335,T00] ( 32, 14.89) ref -> rsi multi-def "CSE #01: aggressive"
@@ -1610,12 +1610,9 @@ G_M61572_IG125: ; bbWeight=0, gcrefRegs=40E8 {rbx rbp rsi rdi r14}, byref
call [System.RuntimeType:get_GenericParameterAttributes():int:this]
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M61572_IG127
- ;; size=71 bbWeight=0 PerfScore 0.00
+ ;; size=63 bbWeight=0 PerfScore 0.00
G_M61572_IG126: ; bbWeight=0, gcrefRegs=20E8 {rbx rbp rsi rdi r13}, byrefRegs=0000 {}, byref
; gcrRegs -[r14]
mov r14, r13
@@ -1847,12 +1844,9 @@ G_M61572_IG143: ; bbWeight=0, gcrefRegs=C0E8 {rbx rbp rsi rdi r14 r15}, b
call [System.RuntimeType:get_GenericParameterAttributes():int:this]
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M61572_IG145
- ;; size=71 bbWeight=0 PerfScore 0.00
+ ;; size=63 bbWeight=0 PerfScore 0.00
G_M61572_IG144: ; bbWeight=0, gcrefRegs=50E8 {rbx rbp rsi rdi r12 r14}, byrefRegs=0000 {}, byref
; gcrRegs -[r15]
mov r15, r12
@@ -2038,12 +2032,9 @@ G_M61572_IG157: ; bbWeight=0, gcrefRegs=E068 {rbx rbp rsi r13 r14 r15}, b
call [System.RuntimeType:get_GenericParameterAttributes():int:this]
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M61572_IG159
- ;; size=77 bbWeight=0 PerfScore 0.00
+ ;; size=69 bbWeight=0 PerfScore 0.00
G_M61572_IG158: ; bbWeight=0, gcrefRegs=C068 {rbx rbp rsi r14 r15}, byrefRegs=0000 {}, byref
; gcrRegs -[r13]
mov r13, gword ptr [rsp+0x38]
@@ -2306,12 +2297,9 @@ G_M61572_IG178: ; bbWeight=0, gcrefRegs=C068 {rbx rbp rsi r14 r15}, byref
call [System.RuntimeType:get_GenericParameterAttributes():int:this]
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M61572_IG180
- ;; size=71 bbWeight=0 PerfScore 0.00
+ ;; size=63 bbWeight=0 PerfScore 0.00
G_M61572_IG179: ; bbWeight=0, gcrefRegs=5068 {rbx rbp rsi r12 r14}, byrefRegs=0000 {}, byref
; gcrRegs -[r15]
mov r15, r12
@@ -2724,7 +2712,7 @@ G_M61572_IG210: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=12 bbWeight=0 PerfScore 0.00
-; Total bytes of code 5210, prolog size 41, PerfScore 371.72, instruction count 1143, allocated bytes for code 5210 (MethodHash=2b1d0f7b) for method Xunit.Sdk.XunitTestCaseRunner:GetBeforeAfterTestAttributes():System.Collections.Generic.List`1[Xunit.Sdk.BeforeAfterTestAttribute]:this (Tier1)
+; Total bytes of code 5178, prolog size 41, PerfScore 371.72, instruction count 1131, allocated bytes for code 5178 (MethodHash=2b1d0f7b) for method Xunit.Sdk.XunitTestCaseRunner:GetBeforeAfterTestAttributes():System.Collections.Generic.List`1[Xunit.Sdk.BeforeAfterTestAttribute]:this (Tier1)
; ============================================================
Unwind Info:-8 (-0.61%) : 177703.dasm - System.Attribute:GetCustomAttributes(System.Reflection.MemberInfo,bool):System.Attribute[] (Tier1)
@@ -41,7 +41,7 @@
; V29 tmp25 [V29,T43] ( 6, 0 ) ref -> r14 class-hnd "Inline stloc first use temp" <System.RuntimeType>
;* V30 tmp26 [V30,T57] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V31 tmp27 [V31,T45] ( 5, 0 ) ref -> r13 class-hnd exact "Inline stloc first use temp" <System.RuntimeType>
-; V32 tmp28 [V32,T53] ( 3, 0 ) int -> rax "Inline stloc first use temp"
+; V32 tmp28 [V32,T56] ( 2, 0 ) int -> rax "Inline stloc first use temp"
;* V33 tmp29 [V33 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V34 tmp30 [V34,T34] ( 2, 2 ) int -> rcx
;* V35 tmp31 [V35 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
@@ -133,13 +133,13 @@
;* V121 tmp117 [V121 ] ( 0, 0 ) ref -> zero-ref single-def "field V84.m_type (fldOffset=0x0)" P-INDEP
;* V122 tmp118 [V122 ] ( 0, 0 ) ref -> zero-ref single-def "field V85.m_type (fldOffset=0x0)" P-INDEP
;* V123 tmp119 [V123 ] ( 0, 0 ) ref -> zero-ref single-def "field V87.m_type (fldOffset=0x0)" P-INDEP
-; V124 tmp120 [V124,T54] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
-; V125 tmp121 [V125,T55] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V124 tmp120 [V124,T53] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
+; V125 tmp121 [V125,T54] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
; V126 tmp122 [V126,T20] ( 2, 3 ) long -> rax "Cast away GC"
;* V127 tmp123 [V127 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
;* V128 tmp124 [V128 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
;* V129 tmp125 [V129 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
-; V130 tmp126 [V130,T56] ( 2, 0 ) ref -> rdx "argument with side effect"
+; V130 tmp126 [V130,T55] ( 2, 0 ) ref -> rdx "argument with side effect"
;* V131 tmp127 [V131 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
; V132 cse0 [V132,T08] ( 13, 3.75) ref -> rbp multi-def "CSE #02: aggressive"
; V133 rat0 [V133,T46] ( 5, 0 ) long -> r15 "Widened IV V30"
@@ -513,12 +513,9 @@ G_M17769_IG37: ; bbWeight=0, gcrefRegs=40A8 {rbx rbp rdi r14}, byrefRegs=
call [System.RuntimeType:get_GenericParameterAttributes():int:this]
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M17769_IG39
- ;; size=71 bbWeight=0 PerfScore 0.00
+ ;; size=63 bbWeight=0 PerfScore 0.00
G_M17769_IG38: ; bbWeight=0, gcrefRegs=20A8 {rbx rbp rdi r13}, byrefRegs=0000 {}, byref
; gcrRegs -[r14]
mov r14, r13
@@ -760,7 +757,7 @@ G_M17769_IG52: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1320, prolog size 35, PerfScore 110.56, instruction count 306, allocated bytes for code 1320 (MethodHash=f911ba96) for method System.Attribute:GetCustomAttributes(System.Reflection.MemberInfo,bool):System.Attribute[] (Tier1)
+; Total bytes of code 1312, prolog size 35, PerfScore 110.56, instruction count 303, allocated bytes for code 1312 (MethodHash=f911ba96) for method System.Attribute:GetCustomAttributes(System.Reflection.MemberInfo,bool):System.Attribute[] (Tier1)
; ============================================================
Unwind Info:-8 (-0.60%) : 748204.dasm - System.Runtime.InteropServices.Marshalling.DefaultIUnknownInterfaceDetailsStrategy:GetIUnknownDerivedDetails(System.RuntimeTypeHandle):System.Runtime.InteropServices.Marshalling.IIUnknownDerivedDetails:this (Tier1)
@@ -31,7 +31,7 @@
; V18 tmp16 [V18,T40] ( 6, 0 ) ref -> rbp class-hnd "Inline stloc first use temp" <System.RuntimeType>
;* V19 tmp17 [V19,T49] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V20 tmp18 [V20,T41] ( 5, 0 ) ref -> r15 class-hnd exact "Inline stloc first use temp" <System.RuntimeType>
-; V21 tmp19 [V21,T45] ( 3, 0 ) int -> rax "Inline stloc first use temp"
+; V21 tmp19 [V21,T48] ( 2, 0 ) int -> rax "Inline stloc first use temp"
;* V22 tmp20 [V22 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V23 tmp21 [V23,T27] ( 2, 2 ) int -> rcx
;* V24 tmp22 [V24 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
@@ -90,9 +90,9 @@
; V77 tmp75 [V77,T16] ( 2, 2.67) long -> rax "Cast away GC"
;* V78 tmp76 [V78 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
;* V79 tmp77 [V79 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
-; V80 tmp78 [V80,T46] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
-; V81 tmp79 [V81,T47] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
-; V82 tmp80 [V82,T48] ( 2, 0 ) ref -> r8 "argument with side effect"
+; V80 tmp78 [V80,T45] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V81 tmp79 [V81,T46] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V82 tmp80 [V82,T47] ( 2, 0 ) ref -> r8 "argument with side effect"
; V83 tmp81 [V83 ] ( 2, 3.72) struct (24) [rsp+0x30] do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.RuntimeType+ListBuilder`1[System.Object]>
; V84 tmp82 [V84,T09] ( 2, 3.72) int -> r8 "argument with side effect"
; V85 tmp83 [V85,T33] ( 2, 1 ) int -> rdx "argument with side effect"
@@ -509,12 +509,9 @@ G_M363_IG34: ; bbWeight=0, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=00
call [System.RuntimeType:get_GenericParameterAttributes():int:this]
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M363_IG36
- ;; size=71 bbWeight=0 PerfScore 0.00
+ ;; size=63 bbWeight=0 PerfScore 0.00
G_M363_IG35: ; bbWeight=0, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rbp]
mov rbp, r15
@@ -701,7 +698,7 @@ G_M363_IG50: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1326, prolog size 35, PerfScore 120.41, instruction count 300, allocated bytes for code 1326 (MethodHash=7ed6fe94) for method System.Runtime.InteropServices.Marshalling.DefaultIUnknownInterfaceDetailsStrategy:GetIUnknownDerivedDetails(System.RuntimeTypeHandle):System.Runtime.InteropServices.Marshalling.IIUnknownDerivedDetails:this (Tier1)
+; Total bytes of code 1318, prolog size 35, PerfScore 120.41, instruction count 297, allocated bytes for code 1318 (MethodHash=7ed6fe94) for method System.Runtime.InteropServices.Marshalling.DefaultIUnknownInterfaceDetailsStrategy:GetIUnknownDerivedDetails(System.RuntimeTypeHandle):System.Runtime.InteropServices.Marshalling.IIUnknownDerivedDetails:this (Tier1)
; ============================================================
Unwind Info:-8 (-0.60%) : 748511.dasm - System.Runtime.InteropServices.Marshalling.DefaultIUnknownInterfaceDetailsStrategy:GetComExposedTypeDetails(System.RuntimeTypeHandle):System.Runtime.InteropServices.Marshalling.IComExposedDetails:this (Tier1)
@@ -31,7 +31,7 @@
; V18 tmp16 [V18,T40] ( 6, 0 ) ref -> rbp class-hnd "Inline stloc first use temp" <System.RuntimeType>
;* V19 tmp17 [V19,T49] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V20 tmp18 [V20,T41] ( 5, 0 ) ref -> r15 class-hnd exact "Inline stloc first use temp" <System.RuntimeType>
-; V21 tmp19 [V21,T45] ( 3, 0 ) int -> rax "Inline stloc first use temp"
+; V21 tmp19 [V21,T48] ( 2, 0 ) int -> rax "Inline stloc first use temp"
;* V22 tmp20 [V22 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V23 tmp21 [V23,T27] ( 2, 2 ) int -> rcx
;* V24 tmp22 [V24 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
@@ -90,9 +90,9 @@
; V77 tmp75 [V77,T16] ( 2, 2.67) long -> rax "Cast away GC"
;* V78 tmp76 [V78 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
;* V79 tmp77 [V79 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
-; V80 tmp78 [V80,T46] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
-; V81 tmp79 [V81,T47] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
-; V82 tmp80 [V82,T48] ( 2, 0 ) ref -> r8 "argument with side effect"
+; V80 tmp78 [V80,T45] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V81 tmp79 [V81,T46] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V82 tmp80 [V82,T47] ( 2, 0 ) ref -> r8 "argument with side effect"
; V83 tmp81 [V83 ] ( 2, 3.72) struct (24) [rsp+0x30] do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.RuntimeType+ListBuilder`1[System.Object]>
; V84 tmp82 [V84,T09] ( 2, 3.72) int -> r8 "argument with side effect"
; V85 tmp83 [V85,T33] ( 2, 1 ) int -> rdx "argument with side effect"
@@ -509,12 +509,9 @@ G_M56115_IG34: ; bbWeight=0, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=
call [System.RuntimeType:get_GenericParameterAttributes():int:this]
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M56115_IG36
- ;; size=71 bbWeight=0 PerfScore 0.00
+ ;; size=63 bbWeight=0 PerfScore 0.00
G_M56115_IG35: ; bbWeight=0, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rbp]
mov rbp, r15
@@ -701,7 +698,7 @@ G_M56115_IG50: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1326, prolog size 35, PerfScore 120.41, instruction count 300, allocated bytes for code 1326 (MethodHash=a0d824cc) for method System.Runtime.InteropServices.Marshalling.DefaultIUnknownInterfaceDetailsStrategy:GetComExposedTypeDetails(System.RuntimeTypeHandle):System.Runtime.InteropServices.Marshalling.IComExposedDetails:this (Tier1)
+; Total bytes of code 1318, prolog size 35, PerfScore 120.41, instruction count 297, allocated bytes for code 1318 (MethodHash=a0d824cc) for method System.Runtime.InteropServices.Marshalling.DefaultIUnknownInterfaceDetailsStrategy:GetComExposedTypeDetails(System.RuntimeTypeHandle):System.Runtime.InteropServices.Marshalling.IComExposedDetails:this (Tier1)
; ============================================================
Unwind Info:-8 (-0.60%) : 700337.dasm - System.Composition.TypedParts.Util.DirectAttributeContext:GetCustomAttributes(System.Type,System.Reflection.MemberInfo):System.Collections.Generic.IEnumerable`1[System.Attribute]:this (Tier1)
@@ -13,8 +13,8 @@
; V01 arg1 [V01,T03] ( 6, 4.15) ref -> rsi class-hnd single-def <System.Type>
; V02 arg2 [V02,T00] ( 17, 7.69) ref -> rbx class-hnd single-def <System.Reflection.MemberInfo>
; V03 OutArgs [V03 ] ( 1, 1 ) struct (48) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <UNNAMED>
-; V04 tmp1 [V04,T47] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.ArgumentNullException>
-; V05 tmp2 [V05,T48] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.ArgumentNullException>
+; V04 tmp1 [V04,T49] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.ArgumentNullException>
+; V05 tmp2 [V05,T50] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.ArgumentNullException>
; V06 tmp3 [V06,T18] ( 7, 2.51) ref -> rcx "guarded devirt return temp"
;* V07 tmp4 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Reflection.RuntimePropertyInfo>
;* V08 tmp5 [V08 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
@@ -41,11 +41,11 @@
;* V29 tmp26 [V29,T31] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.RuntimeType>
; V30 tmp27 [V30,T16] ( 6, 2.77) ref -> rcx class-hnd "Inline stloc first use temp" <System.RuntimeType>
; V31 tmp28 [V31,T24] ( 4, 1.69) ref -> rcx class-hnd "Inline return value spill temp" <System.RuntimeType>
-; V32 tmp29 [V32,T49] ( 3, 0.00) ref -> rax class-hnd single-def "Inline stloc first use temp" <System.Type[]>
+; V32 tmp29 [V32,T51] ( 3, 0.00) ref -> rax class-hnd single-def "Inline stloc first use temp" <System.Type[]>
; V33 tmp30 [V33,T43] ( 6, 0.00) ref -> rbp class-hnd "Inline stloc first use temp" <System.RuntimeType>
;* V34 tmp31 [V34,T57] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V35 tmp32 [V35,T44] ( 5, 0.00) ref -> r13 class-hnd exact "Inline stloc first use temp" <System.RuntimeType>
-; V36 tmp33 [V36,T52] ( 3, 0 ) int -> rax "Inline stloc first use temp"
+; V36 tmp33 [V36,T56] ( 2, 0 ) int -> rax "Inline stloc first use temp"
;* V37 tmp34 [V37 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V38 tmp35 [V38,T28] ( 2, 1.69) int -> rcx
;* V39 tmp36 [V39 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
@@ -142,26 +142,26 @@
;* V130 tmp127 [V130 ] ( 0, 0 ) long -> zero-ref "field V97.m_asTAddr (fldOffset=0x0)" P-INDEP
;* V131 tmp128 [V131 ] ( 0, 0 ) long -> zero-ref "field V99.m_asTAddr (fldOffset=0x0)" P-INDEP
;* V132 tmp129 [V132 ] ( 0, 0 ) ref -> zero-ref single-def "field V101.m_type (fldOffset=0x0)" P-INDEP
-; V133 tmp130 [V133,T55] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
-; V134 tmp131 [V134,T56] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V133 tmp130 [V133,T54] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
+; V134 tmp131 [V134,T55] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
; V135 tmp132 [V135,T15] ( 2, 2.85) long -> rax "Cast away GC"
;* V136 tmp133 [V136 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
;* V137 tmp134 [V137 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
;* V138 tmp135 [V138 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
;* V139 tmp136 [V139 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
-; V140 cse0 [V140,T53] ( 3, 0.00) int -> r14 "CSE #09: conservative"
+; V140 cse0 [V140,T52] ( 3, 0.00) int -> r14 "CSE #09: conservative"
; V141 cse1 [V141,T08] ( 11, 3.25) ref -> rdi multi-def "CSE #07: aggressive"
; V142 cse2 [V142,T38] ( 3, 0.51) long -> rdx "CSE #03: conservative"
; V143 cse3 [V143,T41] ( 2, 0.09) ref -> rdx "CSE #08: conservative"
-; V144 cse4 [V144,T50] ( 3, 0.00) ref -> rbx "CSE #10: conservative"
+; V144 cse4 [V144,T47] ( 3, 0.00) ref -> rbx "CSE #10: conservative"
; V145 rat0 [V145,T45] ( 4, 0.00) byref -> r15 "Strength reduced derived IV"
; V146 rat1 [V146,T46] ( 4, 0.00) int -> r14 "Trip count IV"
; V147 rat2 [V147,T30] ( 8, 1.28) long -> rbx "Widened IV V72"
; V148 rat3 [V148,T01] ( 5, 8 ) ref -> rax "replacement local"
; V149 rat4 [V149,T06] ( 4, 5.08) ref -> rsi "replacement local"
-; V150 rat5 [V150,T51] ( 3, 0.00) ref -> rdx "Spilling to split statement for tree"
+; V150 rat5 [V150,T48] ( 3, 0.00) ref -> rdx "Spilling to split statement for tree"
; V151 rat6 [V151,T42] ( 4, 0.00) ref -> r13 "replacement local"
-; V152 rat7 [V152,T54] ( 3, 0.00) long -> rcx "CSE for expectedClsNode"
+; V152 rat7 [V152,T53] ( 3, 0.00) long -> rcx "CSE for expectedClsNode"
; V153 rat8 [V153,T04] ( 5, 5.93) ref -> rax "replacement local"
; V154 rat9 [V154,T26] ( 3, 1.69) long -> rcx "CSE for expectedClsNode"
;
@@ -634,12 +634,9 @@ G_M8729_IG48: ; bbWeight=0, gcrefRegs=20E8 {rbx rbp rsi rdi r13}, byrefRe
call [rax]System.RuntimeType:get_GenericParameterAttributes():int:this
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M8729_IG50
- ;; size=27 bbWeight=0 PerfScore 0.00
+ ;; size=19 bbWeight=0 PerfScore 0.00
G_M8729_IG49: ; bbWeight=0.00, gcrefRegs=20C8 {rbx rsi rdi r13}, byrefRegs=8000 {r15}, byref
; gcrRegs -[rbp]
mov rbp, r13
@@ -777,7 +774,7 @@ G_M8729_IG61: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1339, prolog size 30, PerfScore 85.89, instruction count 311, allocated bytes for code 1339 (MethodHash=61dadde6) for method System.Composition.TypedParts.Util.DirectAttributeContext:GetCustomAttributes(System.Type,System.Reflection.MemberInfo):System.Collections.Generic.IEnumerable`1[System.Attribute]:this (Tier1)
+; Total bytes of code 1331, prolog size 30, PerfScore 85.89, instruction count 308, allocated bytes for code 1331 (MethodHash=61dadde6) for method System.Composition.TypedParts.Util.DirectAttributeContext:GetCustomAttributes(System.Type,System.Reflection.MemberInfo):System.Collections.Generic.IEnumerable`1[System.Attribute]:this (Tier1)
; ============================================================
Unwind Info:-10 (-0.56%) : 655246.dasm - System.IO.Pipelines.Pipe:ReadAtLeastAsync(int,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[System.IO.Pipelines.ReadResult]:this (Tier1)
@@ -67,7 +67,7 @@
;* V55 tmp45 [V55 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.IO.Pipelines.ReadResult>
;* V56 tmp46 [V56 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Buffers.ReadOnlySequence`1[byte]>
;* V57 tmp47 [V57 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.IO.Pipelines.ReadResult>
-; V58 tmp48 [V58,T23] ( 4, 1.79) ubyte -> r15 "Inline return value spill temp"
+; V58 tmp48 [V58,T22] ( 4, 1.79) ubyte -> r15 "Inline return value spill temp"
; V59 tmp49 [V59,T12] ( 3, 4.42) byref -> rcx single-def "Inlining Arg"
; V60 tmp50 [V60,T28] ( 3, 1.06) ref -> rcx single-def "ISINST eval op1"
;* V61 tmp51 [V61 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling qmarkNull" <System.Runtime.ExceptionServices.ExceptionDispatchInfo>
@@ -155,7 +155,7 @@
; V143 tmp133 [V143 ] ( 2, 0 ) long -> [rbp-0x128] do-not-enreg[X] addr-exposed "field V84._id (fldOffset=0x8)" P-DEP
;* V144 tmp134 [V144 ] ( 0, 0 ) ref -> zero-ref "field V85._node (fldOffset=0x0)" P-INDEP
;* V145 tmp135 [V145 ] ( 0, 0 ) long -> zero-ref "field V85._id (fldOffset=0x8)" P-INDEP
-; V146 tmp136 [V146,T22] ( 5, 1.79) ubyte -> r15 "V08.[000..001)"
+; V146 tmp136 [V146,T23] ( 4, 1.79) ubyte -> r15 "V08.[000..001)"
; V147 tmp137 [V147,T24] ( 3, 1.79) ref -> r13 "V08.[008..016)"
; V148 tmp138 [V148,T25] ( 3, 1.79) ref -> [rbp-0x180] "V08.[016..024)"
; V149 tmp139 [V149,T26] ( 3, 1.79) int -> registers "V08.[024..028)"
@@ -576,11 +576,7 @@ G_M36652_IG37: ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byr
;; size=7 bbWeight=0 PerfScore 0.00
G_M36652_IG38: ; bbWeight=0, gcrefRegs=2848 {rbx rsi r11 r13}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rbx r11 r13]
- mov eax, r15d
- and eax, 1
- mov ecx, r15d
- and ecx, 2
- or eax, ecx
+ test r15b, 3
mov gword ptr [rbp-0x180], r11
; GC ptr vars +{V148}
mov dword ptr [rbp-0x154], r9d
@@ -600,7 +596,7 @@ G_M36652_IG38: ; bbWeight=0, gcrefRegs=2848 {rbx rsi r11 r13}, byrefRegs=
; byrRegs -[rax r15]
; gcr arg pop 0
int3
- ;; size=71 bbWeight=0 PerfScore 0.00
+ ;; size=61 bbWeight=0 PerfScore 0.00
G_M36652_IG39: ; bbWeight=0, gcrefRegs=0048 {rbx rsi}, byrefRegs=8000 {r15}, byref
; gcrRegs +[rbx]
; byrRegs +[r15]
@@ -961,7 +957,7 @@ G_M36652_IG75: ; bbWeight=0.00, funclet epilog, nogc, extend
ret
;; size=8 bbWeight=0.00 PerfScore 0.00
-; Total bytes of code 1790, prolog size 109, PerfScore 118.10, instruction count 405, allocated bytes for code 1790 (MethodHash=6c7470d3) for method System.IO.Pipelines.Pipe:ReadAtLeastAsync(int,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[System.IO.Pipelines.ReadResult]:this (Tier1)
+; Total bytes of code 1780, prolog size 109, PerfScore 118.10, instruction count 401, allocated bytes for code 1780 (MethodHash=6c7470d3) for method System.IO.Pipelines.Pipe:ReadAtLeastAsync(int,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[System.IO.Pipelines.ReadResult]:this (Tier1)
; ============================================================
Unwind Info:-23 (-0.53%) : 665229.dasm - System.Text.Json.Serialization.Converters.EnumConverter`1[byte]:ResolveEnumFields(System.Text.Json.JsonNamingPolicy):System.Text.Json.Serialization.Converters.EnumConverter`1+EnumFieldInfo[byte][] (Tier1)
@@ -303,7 +303,7 @@
; V291 tmp276 [V291,T143] ( 5, 0 ) ref -> [rsp+0xA8] class-hnd "Inline stloc first use temp" <System.RuntimeType>
;* V292 tmp277 [V292,T161] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V293 tmp278 [V293,T144] ( 5, 0 ) ref -> [rsp+0xA0] class-hnd exact spill-single-def "Inline stloc first use temp" <System.RuntimeType>
-; V294 tmp279 [V294,T154] ( 3, 0 ) int -> rax "Inline stloc first use temp"
+; V294 tmp279 [V294,T156] ( 2, 0 ) int -> rax "Inline stloc first use temp"
;* V295 tmp280 [V295 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V296 tmp281 [V296,T39] ( 2, 8.00) int -> rcx
;* V297 tmp282 [V297 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
@@ -342,7 +342,7 @@
; V330 tmp315 [V330,T145] ( 5, 0 ) ref -> [rsp+0x58] class-hnd "Inline stloc first use temp" <System.RuntimeType>
;* V331 tmp316 [V331,T162] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V332 tmp317 [V332,T146] ( 5, 0 ) ref -> [rsp+0x50] class-hnd exact spill-single-def "Inline stloc first use temp" <System.RuntimeType>
-; V333 tmp318 [V333,T155] ( 3, 0 ) int -> rax "Inline stloc first use temp"
+; V333 tmp318 [V333,T157] ( 2, 0 ) int -> rax "Inline stloc first use temp"
;* V334 tmp319 [V334 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V335 tmp320 [V335,T90] ( 2, 2.97) int -> rcx
;* V336 tmp321 [V336 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
@@ -465,11 +465,11 @@
;* V453 tmp438 [V453,T125] ( 0, 0 ) ubyte -> zero-ref "V32.[016..017)"
; V454 tmp439 [V454,T15] ( 2, 12.07) long -> rax "Cast away GC"
;* V455 tmp440 [V455,T160] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-; V456 tmp441 [V456,T156] ( 2, 0 ) ref -> rdx "argument with side effect"
+; V456 tmp441 [V456,T154] ( 2, 0 ) ref -> rdx "argument with side effect"
; V457 tmp442 [V457,T57] ( 2, 4.48) long -> rax "Cast away GC"
; V458 tmp443 [V458,T47] ( 3, 6.68) ref -> rax "argument with side effect"
; V459 tmp444 [V459,T51] ( 2, 5.94) ref -> rdx "argument with side effect"
-; V460 tmp445 [V460,T157] ( 2, 0 ) ref -> rdx "argument with side effect"
+; V460 tmp445 [V460,T155] ( 2, 0 ) ref -> rdx "argument with side effect"
;* V461 tmp446 [V461 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
; V462 cse0 [V462,T83] ( 3, 3.00) int -> r15 "CSE #06: moderate"
; V463 cse1 [V463,T46] ( 2, 6.95) int -> rdx "CSE #33: moderate"
@@ -1845,7 +1845,7 @@ G_M36491_IG137: ; bbWeight=0, gcrefRegs=70E8 {rbx rbp rsi rdi r12 r13 r14
; gcrRegs +[rcx]
jmp G_M36491_IG63
;; size=7 bbWeight=0 PerfScore 0.00
-G_M36491_IG138: ; bbWeight=0, gcrefRegs=70E8 {rbx rbp rsi rdi r12 r13 r14}, byrefRegs=0000 {}, byref
+G_M36491_IG138: ; bbWeight=0, gcrefRegs=70E8 {rbx rbp rsi rdi r12 r13 r14}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rcx]
mov rcx, r12
; gcrRegs +[rcx]
@@ -1860,8 +1860,8 @@ G_M36491_IG138: ; bbWeight=0, gcrefRegs=70E8 {rbx rbp rsi rdi r12 r13 r14
; GC ptr vars +{V291}
xor r8d, r8d
; gcrRegs -[r8]
- jmp G_M36491_IG142
- ;; size=43 bbWeight=0 PerfScore 0.00
+ jmp SHORT G_M36491_IG142
+ ;; size=40 bbWeight=0 PerfScore 0.00
G_M36491_IG139: ; bbWeight=0, gcVars=000000000100800000000000000000000000000000000000 {V290 V291}, gcrefRegs=70E9 {rax rbx rbp rsi rdi r12 r13 r14}, byrefRegs=0000 {}, gcvars, byref, isz
mov qword ptr [rsp+0xD8], r8
mov rdx, gword ptr [rax+8*r8+0x10]
@@ -1892,12 +1892,9 @@ G_M36491_IG139: ; bbWeight=0, gcVars=000000000100800000000000000000000000
call [System.RuntimeType:get_GenericParameterAttributes():int:this]
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M36491_IG141
- ;; size=94 bbWeight=0 PerfScore 0.00
+ ;; size=86 bbWeight=0 PerfScore 0.00
G_M36491_IG140: ; bbWeight=0, gcVars=000000000101000000000000000000000000000000000000 {V290 V293}, gcrefRegs=70E8 {rbx rbp rsi rdi r12 r13 r14}, byrefRegs=0000 {}, gcvars, byref
; GC ptr vars -{V291}
mov rcx, gword ptr [rsp+0xA0]
@@ -1915,7 +1912,7 @@ G_M36491_IG141: ; bbWeight=0, gcVars=000000000100800000000000000000000000
;; size=19 bbWeight=0 PerfScore 0.00
G_M36491_IG142: ; bbWeight=0, gcrefRegs=70E9 {rax rbx rbp rsi rdi r12 r13 r14}, byrefRegs=0000 {}, byref, isz
cmp dword ptr [rax+0x08], r8d
- jg G_M36491_IG139
+ jg SHORT G_M36491_IG139
mov rax, 0xD1FFAB1E
cmp gword ptr [rsp+0xA8], rax
jne SHORT G_M36491_IG143
@@ -1930,7 +1927,7 @@ G_M36491_IG142: ; bbWeight=0, gcrefRegs=70E9 {rax rbx rbp rsi rdi r12 r13
mov rcx, 0xD1FFAB1E
; gcrRegs +[rcx]
mov gword ptr [rsp+0xA8], rcx
- ;; size=61 bbWeight=0 PerfScore 0.00
+ ;; size=57 bbWeight=0 PerfScore 0.00
G_M36491_IG143: ; bbWeight=0, gcrefRegs=70E8 {rbx rbp rsi rdi r12 r13 r14}, byrefRegs=0000 {}, byref
; gcrRegs -[rcx]
mov rcx, gword ptr [rsp+0xA8]
@@ -2031,12 +2028,9 @@ G_M36491_IG149: ; bbWeight=0, gcVars=000000000202000000000000000000000000
call [System.RuntimeType:get_GenericParameterAttributes():int:this]
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M36491_IG151
- ;; size=85 bbWeight=0 PerfScore 0.00
+ ;; size=77 bbWeight=0 PerfScore 0.00
G_M36491_IG150: ; bbWeight=0, gcVars=000000000204000000000000000000000000000000000000 {V329 V332}, gcrefRegs=70E8 {rbx rbp rsi rdi r12 r13 r14}, byrefRegs=0000 {}, gcvars, byref
; GC ptr vars -{V330}
mov rcx, gword ptr [rsp+0x50]
@@ -2343,7 +2337,7 @@ G_M36491_IG179: ; bbWeight=0, gcVars=000000000000000000000000000000000000
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 4374, prolog size 53, PerfScore 824.00, instruction count 890, allocated bytes for code 4374 (MethodHash=2ef77174) for method System.Text.Json.Serialization.Converters.EnumConverter`1[byte]:ResolveEnumFields(System.Text.Json.JsonNamingPolicy):System.Text.Json.Serialization.Converters.EnumConverter`1+EnumFieldInfo[byte][] (Tier1)
+; Total bytes of code 4351, prolog size 53, PerfScore 824.00, instruction count 884, allocated bytes for code 4351 (MethodHash=2ef77174) for method System.Text.Json.Serialization.Converters.EnumConverter`1[byte]:ResolveEnumFields(System.Text.Json.JsonNamingPolicy):System.Text.Json.Serialization.Converters.EnumConverter`1+EnumFieldInfo[byte][] (Tier1)
; ============================================================
Unwind Info:-23 (-0.52%) : 665575.dasm - System.Text.Json.Serialization.Converters.EnumConverter`1[int]:ResolveEnumFields(System.Text.Json.JsonNamingPolicy):System.Text.Json.Serialization.Converters.EnumConverter`1+EnumFieldInfo[int][] (Tier1)
@@ -303,7 +303,7 @@
; V291 tmp276 [V291,T145] ( 5, 0 ) ref -> [rsp+0x98] class-hnd "Inline stloc first use temp" <System.RuntimeType>
;* V292 tmp277 [V292,T165] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V293 tmp278 [V293,T146] ( 5, 0 ) ref -> [rsp+0x90] class-hnd exact spill-single-def "Inline stloc first use temp" <System.RuntimeType>
-; V294 tmp279 [V294,T157] ( 3, 0 ) int -> rax "Inline stloc first use temp"
+; V294 tmp279 [V294,T160] ( 2, 0 ) int -> rax "Inline stloc first use temp"
;* V295 tmp280 [V295 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V296 tmp281 [V296,T41] ( 2, 6.00) int -> rcx
;* V297 tmp282 [V297 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
@@ -342,7 +342,7 @@
; V330 tmp315 [V330,T147] ( 5, 0 ) ref -> [rsp+0x48] class-hnd "Inline stloc first use temp" <System.RuntimeType>
;* V331 tmp316 [V331,T166] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V332 tmp317 [V332,T148] ( 5, 0 ) ref -> [rsp+0x40] class-hnd exact spill-single-def "Inline stloc first use temp" <System.RuntimeType>
-; V333 tmp318 [V333,T158] ( 3, 0 ) int -> rax "Inline stloc first use temp"
+; V333 tmp318 [V333,T161] ( 2, 0 ) int -> rax "Inline stloc first use temp"
;* V334 tmp319 [V334 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V335 tmp320 [V335,T95] ( 2, 2.23) int -> rcx
;* V336 tmp321 [V336 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
@@ -473,13 +473,13 @@
;* V461 tmp446 [V461,T127] ( 0, 0 ) ubyte -> zero-ref "V74.[016..017)"
; V462 tmp447 [V462,T18] ( 2, 9.06) long -> rax "Cast away GC"
;* V463 tmp448 [V463,T164] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-; V464 tmp449 [V464,T159] ( 2, 0 ) ref -> rdx "argument with side effect"
+; V464 tmp449 [V464,T157] ( 2, 0 ) ref -> rdx "argument with side effect"
; V465 tmp450 [V465,T71] ( 2, 3.36) long -> rax "Cast away GC"
; V466 tmp451 [V466,T47] ( 3, 5.01) ref -> rax "argument with side effect"
; V467 tmp452 [V467,T51] ( 2, 4.45) ref -> rdx "argument with side effect"
; V468 tmp453 [V468,T93] ( 3, 2.23) ref -> rax "argument with side effect"
-; V469 tmp454 [V469,T160] ( 2, 0 ) ref -> r8 "argument with side effect"
-; V470 tmp455 [V470,T161] ( 2, 0 ) ref -> rdx "argument with side effect"
+; V469 tmp454 [V469,T158] ( 2, 0 ) ref -> r8 "argument with side effect"
+; V470 tmp455 [V470,T159] ( 2, 0 ) ref -> rdx "argument with side effect"
;* V471 tmp456 [V471 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
; V472 cse0 [V472,T46] ( 2, 5.48) int -> rdx "CSE #33: moderate"
; V473 cse1 [V473,T37] ( 3, 6.44) int -> rdx "CSE #07: moderate"
@@ -1848,7 +1848,7 @@ G_M47563_IG139: ; bbWeight=0, gcrefRegs=70E8 {rbx rbp rsi rdi r12 r13 r14
; gcrRegs +[rcx]
jmp G_M47563_IG62
;; size=7 bbWeight=0 PerfScore 0.00
-G_M47563_IG140: ; bbWeight=0, gcrefRegs=70E8 {rbx rbp rsi rdi r12 r13 r14}, byrefRegs=0000 {}, byref
+G_M47563_IG140: ; bbWeight=0, gcrefRegs=70E8 {rbx rbp rsi rdi r12 r13 r14}, byrefRegs=0000 {}, byref, isz
; gcrRegs -[rcx]
mov rcx, r12
; gcrRegs +[rcx]
@@ -1863,8 +1863,8 @@ G_M47563_IG140: ; bbWeight=0, gcrefRegs=70E8 {rbx rbp rsi rdi r12 r13 r14
; GC ptr vars +{V291}
xor r8d, r8d
; gcrRegs -[r8]
- jmp G_M47563_IG144
- ;; size=43 bbWeight=0 PerfScore 0.00
+ jmp SHORT G_M47563_IG144
+ ;; size=40 bbWeight=0 PerfScore 0.00
G_M47563_IG141: ; bbWeight=0, gcVars=000000000402000000000000000000000000000000000000 {V290 V291}, gcrefRegs=70E9 {rax rbx rbp rsi rdi r12 r13 r14}, byrefRegs=0000 {}, gcvars, byref, isz
mov qword ptr [rsp+0xC8], r8
mov rdx, gword ptr [rax+8*r8+0x10]
@@ -1895,12 +1895,9 @@ G_M47563_IG141: ; bbWeight=0, gcVars=000000000402000000000000000000000000
call [System.RuntimeType:get_GenericParameterAttributes():int:this]
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M47563_IG143
- ;; size=94 bbWeight=0 PerfScore 0.00
+ ;; size=86 bbWeight=0 PerfScore 0.00
G_M47563_IG142: ; bbWeight=0, gcVars=000000000404000000000000000000000000000000000000 {V290 V293}, gcrefRegs=70E8 {rbx rbp rsi rdi r12 r13 r14}, byrefRegs=0000 {}, gcvars, byref
; GC ptr vars -{V291}
mov rcx, gword ptr [rsp+0x90]
@@ -1918,7 +1915,7 @@ G_M47563_IG143: ; bbWeight=0, gcVars=000000000402000000000000000000000000
;; size=19 bbWeight=0 PerfScore 0.00
G_M47563_IG144: ; bbWeight=0, gcrefRegs=70E9 {rax rbx rbp rsi rdi r12 r13 r14}, byrefRegs=0000 {}, byref, isz
cmp dword ptr [rax+0x08], r8d
- jg G_M47563_IG141
+ jg SHORT G_M47563_IG141
mov rax, 0xD1FFAB1E
cmp gword ptr [rsp+0x98], rax
jne SHORT G_M47563_IG145
@@ -1933,7 +1930,7 @@ G_M47563_IG144: ; bbWeight=0, gcrefRegs=70E9 {rax rbx rbp rsi rdi r12 r13
mov rcx, 0xD1FFAB1E
; gcrRegs +[rcx]
mov gword ptr [rsp+0x98], rcx
- ;; size=61 bbWeight=0 PerfScore 0.00
+ ;; size=57 bbWeight=0 PerfScore 0.00
G_M47563_IG145: ; bbWeight=0, gcrefRegs=70E8 {rbx rbp rsi rdi r12 r13 r14}, byrefRegs=0000 {}, byref
; gcrRegs -[rcx]
mov rcx, gword ptr [rsp+0x98]
@@ -2034,12 +2031,9 @@ G_M47563_IG151: ; bbWeight=0, gcVars=000000000808000000000000000000000000
call [System.RuntimeType:get_GenericParameterAttributes():int:this]
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M47563_IG153
- ;; size=85 bbWeight=0 PerfScore 0.00
+ ;; size=77 bbWeight=0 PerfScore 0.00
G_M47563_IG152: ; bbWeight=0, gcVars=000000000810000000000000000000000000000000000000 {V329 V332}, gcrefRegs=70E8 {rbx rbp rsi rdi r12 r13 r14}, byrefRegs=0000 {}, gcvars, byref
; GC ptr vars -{V330}
mov rcx, gword ptr [rsp+0x40]
@@ -2407,7 +2401,7 @@ G_M47563_IG185: ; bbWeight=0, gcVars=000000000000000000000000000000000000
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 4433, prolog size 52, PerfScore 637.64, instruction count 911, allocated bytes for code 4433 (MethodHash=fffa4634) for method System.Text.Json.Serialization.Converters.EnumConverter`1[int]:ResolveEnumFields(System.Text.Json.JsonNamingPolicy):System.Text.Json.Serialization.Converters.EnumConverter`1+EnumFieldInfo[int][] (Tier1)
+; Total bytes of code 4410, prolog size 52, PerfScore 637.64, instruction count 905, allocated bytes for code 4410 (MethodHash=fffa4634) for method System.Text.Json.Serialization.Converters.EnumConverter`1[int]:ResolveEnumFields(System.Text.Json.JsonNamingPolicy):System.Text.Json.Serialization.Converters.EnumConverter`1+EnumFieldInfo[int][] (Tier1)
; ============================================================
Unwind Info:-32 (-0.51%) : 650530.dasm - System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver:PopulatePropertyInfo(System.Text.Json.Serialization.Metadata.JsonPropertyInfo,System.Reflection.MemberInfo,System.Text.Json.Serialization.JsonConverter,System.Nullable`1[int],System.Reflection.NullabilityInfoContext,bool,bool,System.Text.Json.JsonNamingPolicy) (Tier1)
@@ -92,7 +92,7 @@
; V80 tmp68 [V80,T184] ( 6, 0 ) ref -> [rsp+0xB0] class-hnd "Inline stloc first use temp" <System.RuntimeType>
;* V81 tmp69 [V81,T211] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V82 tmp70 [V82,T187] ( 5, 0 ) ref -> [rsp+0xA8] class-hnd exact spill-single-def "Inline stloc first use temp" <System.RuntimeType>
-; V83 tmp71 [V83,T200] ( 3, 0 ) int -> rax "Inline stloc first use temp"
+; V83 tmp71 [V83,T205] ( 2, 0 ) int -> rax "Inline stloc first use temp"
;* V84 tmp72 [V84 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V85 tmp73 [V85,T100] ( 2, 2.00) int -> rcx
;* V86 tmp74 [V86 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
@@ -153,7 +153,7 @@
; V141 tmp129 [V141,T185] ( 6, 0 ) ref -> [rsp+0x98] class-hnd "Inline stloc first use temp" <System.RuntimeType>
;* V142 tmp130 [V142,T212] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V143 tmp131 [V143,T188] ( 5, 0 ) ref -> [rsp+0x90] class-hnd exact spill-single-def "Inline stloc first use temp" <System.RuntimeType>
-; V144 tmp132 [V144,T201] ( 3, 0 ) int -> rax "Inline stloc first use temp"
+; V144 tmp132 [V144,T206] ( 2, 0 ) int -> rax "Inline stloc first use temp"
;* V145 tmp133 [V145 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V146 tmp134 [V146,T113] ( 2, 1.98) int -> rcx
;* V147 tmp135 [V147 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
@@ -222,7 +222,7 @@
; V210 tmp198 [V210,T186] ( 6, 0 ) ref -> [rsp+0x68] class-hnd "Inline stloc first use temp" <System.RuntimeType>
;* V211 tmp199 [V211,T213] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V212 tmp200 [V212,T189] ( 5, 0 ) ref -> [rsp+0x60] class-hnd exact spill-single-def "Inline stloc first use temp" <System.RuntimeType>
-; V213 tmp201 [V213,T202] ( 3, 0 ) int -> rax "Inline stloc first use temp"
+; V213 tmp201 [V213,T207] ( 2, 0 ) int -> rax "Inline stloc first use temp"
;* V214 tmp202 [V214 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V215 tmp203 [V215,T108] ( 2, 2.00) int -> rcx
;* V216 tmp204 [V216 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
@@ -370,7 +370,7 @@
;* V358 tmp346 [V358,T209] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
;* V359 tmp347 [V359 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
;* V360 tmp348 [V360,T152] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
-; V361 tmp349 [V361,T203] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V361 tmp349 [V361,T200] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
; V362 tmp350 [V362,T55] ( 2, 3.02) long -> rax "Cast away GC"
;* V363 tmp351 [V363,T210] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
;* V364 tmp352 [V364 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
@@ -381,11 +381,11 @@
; V369 tmp357 [V369,T118] ( 2, 1.94) ref -> rdx single-def "argument with side effect"
; V370 tmp358 [V370,T166] ( 2, 0.19) ref -> rdx single-def "argument with side effect"
; V371 tmp359 [V371,T169] ( 2, 0.19) ref -> rdx single-def "argument with side effect"
-; V372 tmp360 [V372,T204] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
-; V373 tmp361 [V373,T205] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
-; V374 tmp362 [V374,T206] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
+; V372 tmp360 [V372,T201] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V373 tmp361 [V373,T202] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V374 tmp362 [V374,T203] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
; V375 tmp363 [V375,T126] ( 2, 1.54) ref -> rcx single-def "argument with side effect"
-; V376 tmp364 [V376,T207] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V376 tmp364 [V376,T204] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
;* V377 tmp365 [V377 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
; V378 cse0 [V378,T70] ( 3, 2.90) ref -> r13 "CSE #34: conservative"
; V379 cse1 [V379,T23] ( 12, 5.36) long -> [rsp+0xF8] multi-def "CSE #03: moderate"
@@ -2230,12 +2230,9 @@ G_M22330_IG203: ; bbWeight=0, gcVars=000000000000000001000000000000000000
call [System.RuntimeType:get_GenericParameterAttributes():int:this]
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M22330_IG205
- ;; size=94 bbWeight=0 PerfScore 0.00
+ ;; size=86 bbWeight=0 PerfScore 0.00
G_M22330_IG204: ; bbWeight=0, gcVars=0000000000000000080000000000000000000000000000000000000000000000 {V82}, gcrefRegs=30C8 {rbx rsi rdi r12 r13}, byrefRegs=0000 {}, gcvars, byref
; GC ptr vars -{V80}
mov rax, gword ptr [rsp+0xA8]
@@ -2252,7 +2249,7 @@ G_M22330_IG205: ; bbWeight=0, gcVars=000000000000000001000000000000000000
;; size=13 bbWeight=0 PerfScore 0.00
G_M22330_IG206: ; bbWeight=0, gcrefRegs=30C8 {rbx rsi rdi r12 r13}, byrefRegs=0000 {}, byref, isz
cmp dword ptr [r12+0x08], r8d
- jg G_M22330_IG203
+ jg SHORT G_M22330_IG203
mov rcx, 0xD1FFAB1E
; gcrRegs +[rcx]
cmp gword ptr [rsp+0xB0], rcx
@@ -2270,7 +2267,7 @@ G_M22330_IG206: ; bbWeight=0, gcrefRegs=30C8 {rbx rsi rdi r12 r13}, byref
mov r12, rax
; gcrRegs +[r12]
mov gword ptr [rsp+0xB0], r12
- ;; size=75 bbWeight=0 PerfScore 0.00
+ ;; size=71 bbWeight=0 PerfScore 0.00
G_M22330_IG207: ; bbWeight=0, gcrefRegs=20C8 {rbx rsi rdi r13}, byrefRegs=0000 {}, byref
; gcrRegs -[rax rcx r12]
mov rax, gword ptr [rsp+0xB0]
@@ -2430,12 +2427,9 @@ G_M22330_IG218: ; bbWeight=0, gcVars=000000000000000002000000000000000000
call [System.RuntimeType:get_GenericParameterAttributes():int:this]
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M22330_IG220
- ;; size=94 bbWeight=0 PerfScore 0.00
+ ;; size=86 bbWeight=0 PerfScore 0.00
G_M22330_IG219: ; bbWeight=0, gcVars=0000000000000000100000000000000000000000000000000000000000000000 {V143}, gcrefRegs=20C8 {rbx rsi rdi r13}, byrefRegs=0000 {}, gcvars, byref
; GC ptr vars -{V141}
mov rax, gword ptr [rsp+0x90]
@@ -2452,7 +2446,7 @@ G_M22330_IG220: ; bbWeight=0, gcVars=000000000000000002000000000000000000
;; size=13 bbWeight=0 PerfScore 0.00
G_M22330_IG221: ; bbWeight=0, gcrefRegs=20C8 {rbx rsi rdi r13}, byrefRegs=0000 {}, byref, isz
cmp dword ptr [rdi+0x08], r8d
- jg G_M22330_IG218
+ jg SHORT G_M22330_IG218
mov rcx, 0xD1FFAB1E
; gcrRegs +[rcx]
cmp gword ptr [rsp+0x98], rcx
@@ -2470,7 +2464,7 @@ G_M22330_IG221: ; bbWeight=0, gcrefRegs=20C8 {rbx rsi rdi r13}, byrefRegs
mov rdi, rax
; gcrRegs +[rdi]
mov gword ptr [rsp+0x98], rdi
- ;; size=81 bbWeight=0 PerfScore 0.00
+ ;; size=77 bbWeight=0 PerfScore 0.00
G_M22330_IG222: ; bbWeight=0, gcrefRegs=2048 {rbx rsi r13}, byrefRegs=0000 {}, byref
; gcrRegs -[rax rcx rdi]
mov rax, gword ptr [rsp+0x98]
@@ -2738,12 +2732,9 @@ G_M22330_IG241: ; bbWeight=0, gcVars=000000000000004004000000000000000000
call [System.RuntimeType:get_GenericParameterAttributes():int:this]
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M22330_IG243
- ;; size=88 bbWeight=0 PerfScore 0.00
+ ;; size=80 bbWeight=0 PerfScore 0.00
G_M22330_IG242: ; bbWeight=0, gcVars=0000000000000040200000000000000000000000000000000000000008000000 {V209 V212 V385}, gcrefRegs=2048 {rbx rsi r13}, byrefRegs=0000 {}, gcvars, byref
; GC ptr vars -{V210}
mov r8, gword ptr [rsp+0x60]
@@ -3154,7 +3145,7 @@ G_M22330_IG278: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 6275, prolog size 50, PerfScore 451.31, instruction count 1321, allocated bytes for code 6275 (MethodHash=c34fa8c5) for method System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver:PopulatePropertyInfo(System.Text.Json.Serialization.Metadata.JsonPropertyInfo,System.Reflection.MemberInfo,System.Text.Json.Serialization.JsonConverter,System.Nullable`1[int],System.Reflection.NullabilityInfoContext,bool,bool,System.Text.Json.JsonNamingPolicy) (Tier1)
+; Total bytes of code 6243, prolog size 50, PerfScore 451.31, instruction count 1312, allocated bytes for code 6243 (MethodHash=c34fa8c5) for method System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver:PopulatePropertyInfo(System.Text.Json.Serialization.Metadata.JsonPropertyInfo,System.Reflection.MemberInfo,System.Text.Json.Serialization.JsonConverter,System.Nullable`1[int],System.Reflection.NullabilityInfoContext,bool,bool,System.Text.Json.JsonNamingPolicy) (Tier1)
; ============================================================
Unwind Info:-5 (-0.51%) : 274699.dasm - System.Sha1ForNonSecretPurposes:HashData(System.ReadOnlySpan`1[byte],System.Span`1[byte]) (Tier1)
@@ -23,7 +23,7 @@
; V11 tmp2 [V11,T29] ( 2, 35.10) byref -> rdx "impAppendStmt"
;* V12 tmp3 [V12 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[byte]>
;* V13 tmp4 [V13 ] ( 0, 0 ) int -> zero-ref "impSpillLclRefs"
-; V14 tmp5 [V14,T03] ( 4,426.58) int -> r9 "impSpillLclRefs"
+; V14 tmp5 [V14,T02] ( 4,426.58) int -> r9 "impSpillLclRefs"
;* V15 tmp6 [V15 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[byte]>
; V16 tmp7 [V16,T21] ( 2,100.90) byref -> rdx "impAppendStmt"
;* V17 tmp8 [V17 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[byte]>
@@ -73,7 +73,7 @@
;* V61 tmp52 [V61 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[uint]>
;* V62 tmp53 [V62,T62] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V63 tmp54 [V63,T06] ( 14,376.90) int -> registers "Inline stloc first use temp"
-; V64 tmp55 [V64,T02] ( 16,439.23) int -> registers "Inline stloc first use temp"
+; V64 tmp55 [V64,T03] ( 15,408.06) int -> registers "Inline stloc first use temp"
; V65 tmp56 [V65,T04] ( 15,408.06) int -> registers "Inline stloc first use temp"
; V66 tmp57 [V66,T05] ( 15,408.06) int -> registers "Inline stloc first use temp"
; V67 tmp58 [V67,T08] ( 10,252.26) int -> registers "Inline stloc first use temp"
@@ -407,13 +407,11 @@ G_M29126_IG20: ; bbWeight=1.48, gcrefRegs=0000 {}, byrefRegs=D000 {r12 r1
mov esi, 40
;; size=5 bbWeight=1.48 PerfScore 0.37
G_M29126_IG21: ; bbWeight=31.16, gcrefRegs=0000 {}, byrefRegs=D000 {r12 r14 r15}, byref, isz
- mov edi, edx
- and edi, r8d
- mov r13d, edx
- and r13d, r10d
- or edi, r13d
+ mov edi, r8d
+ and edi, r10d
mov r13d, r8d
- and r13d, r10d
+ or r13d, r10d
+ and r13d, edx
or edi, r13d
mov r13d, ecx
rol r13d, 5
@@ -431,7 +429,7 @@ G_M29126_IG21: ; bbWeight=31.16, gcrefRegs=0000 {}, byrefRegs=D000 {r12 r
mov r8d, edx
mov edx, eax
jl SHORT G_M29126_IG21
- ;; size=74 bbWeight=31.16 PerfScore 303.82
+ ;; size=69 bbWeight=31.16 PerfScore 288.24
G_M29126_IG22: ; bbWeight=1.48, gcrefRegs=0000 {}, byrefRegs=D000 {r12 r14 r15}, byref
mov esi, 60
;; size=5 bbWeight=1.48 PerfScore 0.37
@@ -540,7 +538,7 @@ G_M29126_IG33: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 981, prolog size 41, PerfScore 3274.05, instruction count 261, allocated bytes for code 981 (MethodHash=ddf78e39) for method System.Sha1ForNonSecretPurposes:HashData(System.ReadOnlySpan`1[byte],System.Span`1[byte]) (Tier1)
+; Total bytes of code 976, prolog size 41, PerfScore 3258.47, instruction count 259, allocated bytes for code 976 (MethodHash=ddf78e39) for method System.Sha1ForNonSecretPurposes:HashData(System.ReadOnlySpan`1[byte],System.Span`1[byte]) (Tier1)
; ============================================================
Unwind Info:-8 (-0.46%) : 191496.dasm - (dynamicClass):Invoker(System.Runtime.CompilerServices.CallSiteBinder,System.Object,System.Object[]):System.Object (FullOpts)
@@ -24,7 +24,7 @@
; V11 tmp7 [V11,T52] ( 6, 0 ) ref -> r15 class-hnd "Inline stloc first use temp" <System.RuntimeType>
;* V12 tmp8 [V12,T61] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V13 tmp9 [V13,T53] ( 5, 0 ) ref -> r12 class-hnd exact "Inline stloc first use temp" <System.RuntimeType>
-; V14 tmp10 [V14,T57] ( 3, 0 ) int -> rax "Inline stloc first use temp"
+; V14 tmp10 [V14,T60] ( 2, 0 ) int -> rax "Inline stloc first use temp"
;* V15 tmp11 [V15 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V16 tmp12 [V16,T37] ( 2, 2 ) int -> rcx
;* V17 tmp13 [V17 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
@@ -118,9 +118,9 @@
; V105 tmp101 [V105 ] ( 8, 5.49) int -> [rsp+0x58] do-not-enreg[X] addr-exposed "field V52._count (fldOffset=0x10)" P-DEP
; V106 tmp102 [V106 ] ( 8, 2.32) int -> [rsp+0x5C] do-not-enreg[X] addr-exposed "field V52._capacity (fldOffset=0x14)" P-DEP
; V107 tmp103 [V107,T18] ( 2, 3.30) long -> rax "Cast away GC"
-; V108 tmp104 [V108,T58] ( 2, 0 ) ref -> rcx "argument with side effect"
-; V109 tmp105 [V109,T59] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
-; V110 tmp106 [V110,T60] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V108 tmp104 [V108,T57] ( 2, 0 ) ref -> rcx "argument with side effect"
+; V109 tmp105 [V109,T58] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
+; V110 tmp106 [V110,T59] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
; V111 tmp107 [V111,T13] ( 2, 3.98) byref -> r9 single-def "argument with side effect"
; V112 tmp108 [V112,T02] ( 3, 5.96) ref -> rbx single-def "argument with side effect"
; V113 cse0 [V113,T32] ( 3, 2.39) long -> rcx "CSE #06: moderate"
@@ -668,12 +668,9 @@ G_M59934_IG48: ; bbWeight=0, gcrefRegs=C0E8 {rbx rbp rsi rdi r14 r15}, by
call [System.RuntimeType:get_GenericParameterAttributes():int:this]
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M59934_IG50
- ;; size=71 bbWeight=0 PerfScore 0.00
+ ;; size=63 bbWeight=0 PerfScore 0.00
G_M59934_IG49: ; bbWeight=0, gcrefRegs=50E8 {rbx rbp rsi rdi r12 r14}, byrefRegs=0000 {}, byref
; gcrRegs -[r15]
mov r15, r12
@@ -899,7 +896,7 @@ G_M59934_IG71: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1728, prolog size 59, PerfScore 150.44, instruction count 377, allocated bytes for code 1728 (MethodHash=140915e1) for method (dynamicClass):Invoker(System.Runtime.CompilerServices.CallSiteBinder,System.Object,System.Object[]):System.Object (FullOpts)
+; Total bytes of code 1720, prolog size 59, PerfScore 150.44, instruction count 374, allocated bytes for code 1720 (MethodHash=140915e1) for method (dynamicClass):Invoker(System.Runtime.CompilerServices.CallSiteBinder,System.Object,System.Object[]):System.Object (FullOpts)
; ============================================================
Unwind Info:-16 (-0.46%) : 466500.dasm - System.Uri:ParseRemaining():this (Tier1)
@@ -13,7 +13,7 @@
; V01 loc0 [V01,T07] ( 74, 28.91) long -> rsi
; V02 loc1 [V02,T19] ( 12, 5.02) ref -> rdi class-hnd exact single-def <System.String>
; V03 loc2 [V03,T20] ( 9, 4.98) int -> [rbp-0x3C]
-; V04 loc3 [V04,T18] ( 12, 5.09) int -> r13
+; V04 loc3 [V04,T18] ( 11, 5.09) int -> r13
; V05 loc4 [V05,T32] ( 5, 2.00) ubyte -> [rbp-0x40] spill-single-def
; V06 loc5 [V06,T11] ( 27, 10.99) int -> [rbp-0x44]
;* V07 loc6 [V07 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.ReadOnlySpan`1[char]>
@@ -1172,14 +1172,10 @@ G_M48529_IG113: ; bbWeight=0, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}
mov r8, 0xD1FFAB1E
test rsi, r8
je SHORT G_M48529_IG115
- mov r8d, r13d
- and r8d, 0xD1FFAB1E
- mov r10d, r13d
- and r10d, 0xD1FFAB1E
- or r8d, r10d
+ test r13d, 0xD1FFAB1E
je SHORT G_M48529_IG115
jmp G_M48529_IG24
- ;; size=45 bbWeight=0 PerfScore 0.00
+ ;; size=29 bbWeight=0 PerfScore 0.00
G_M48529_IG114: ; bbWeight=0, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
test r13d, 0xD1FFAB1E
je G_M48529_IG25
@@ -1410,7 +1406,7 @@ G_M48529_IG132: ; bbWeight=0.00, funclet epilog, nogc, extend
ret
;; size=5 bbWeight=0.00 PerfScore 0.00
-; Total bytes of code 3474, prolog size 39, PerfScore 1030.23, instruction count 791, allocated bytes for code 3474 (MethodHash=7d21426e) for method System.Uri:ParseRemaining():this (Tier1)
+; Total bytes of code 3458, prolog size 39, PerfScore 1030.23, instruction count 787, allocated bytes for code 3458 (MethodHash=7d21426e) for method System.Uri:ParseRemaining():this (Tier1)
; ============================================================
Unwind Info:-9 (-0.38%) : 475499.dasm - System.Xml.XsdValidatingReader:SetupValidator(System.Xml.XmlReaderSettings,System.Xml.XmlReader,System.Xml.Schema.XmlSchemaObject):this (Tier1)
@@ -10,17 +10,17 @@
; Final local variable assignments
;
; V00 this [V00,T03] ( 14, 13 ) ref -> rbx this class-hnd single-def <System.Xml.XsdValidatingReader>
-; V01 arg1 [V01,T08] ( 7, 5.37) ref -> rdi class-hnd single-def <System.Xml.XmlReaderSettings>
+; V01 arg1 [V01,T07] ( 7, 5.37) ref -> rdi class-hnd single-def <System.Xml.XmlReaderSettings>
; V02 arg2 [V02,T05] ( 10, 6 ) ref -> rsi class-hnd single-def <System.Xml.XmlReader>
; V03 arg3 [V03,T17] ( 4, 3 ) ref -> rbp class-hnd single-def <System.Xml.Schema.XmlSchemaObject>
; V04 OutArgs [V04 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <UNNAMED>
-; V05 tmp1 [V05,T09] ( 4, 7.12) ref -> r14 class-hnd single-def "impAppendStmt" <System.Xml.XmlNameTable>
+; V05 tmp1 [V05,T08] ( 4, 7.12) ref -> r14 class-hnd single-def "impAppendStmt" <System.Xml.XmlNameTable>
;* V06 tmp2 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "impAppendStmt" <System.Xml.Schema.XmlSchemaSet>
-; V07 tmp3 [V07,T12] ( 3, 6 ) ref -> r13 class-hnd single-def "impAppendStmt" <System.Xml.IXmlNamespaceResolver>
+; V07 tmp3 [V07,T11] ( 3, 6 ) ref -> r13 class-hnd single-def "impAppendStmt" <System.Xml.IXmlNamespaceResolver>
; V08 tmp4 [V08,T01] ( 14, 22.47) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <System.Xml.Schema.XmlSchemaValidator>
; V09 tmp5 [V09,T06] ( 4, 8 ) ref -> r14 class-hnd exact single-def "impAppendStmt" <System.Xml.Schema.XmlSchemaValidator>
-; V10 tmp6 [V10,T13] ( 3, 6.00) ref -> r14 class-hnd exact single-def "impAppendStmt" <System.Xml.Schema.XmlSchemaValidator>
-; V11 tmp7 [V11,T14] ( 3, 6.00) ref -> rdi class-hnd exact single-def "impAppendStmt" <System.Xml.Schema.XmlSchemaValidator>
+; V10 tmp6 [V10,T12] ( 3, 6.00) ref -> r14 class-hnd exact single-def "impAppendStmt" <System.Xml.Schema.XmlSchemaValidator>
+; V11 tmp7 [V11,T13] ( 3, 6.00) ref -> rdi class-hnd exact single-def "impAppendStmt" <System.Xml.Schema.XmlSchemaValidator>
;* V12 tmp8 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Xml.XmlReaderSettings>
; V13 tmp9 [V13,T51] ( 3, 2 ) ref -> rcx "guarded devirt return temp"
;* V14 tmp10 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Xml.XmlTextReaderImpl>
@@ -32,7 +32,7 @@
;* V20 tmp16 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Xml.Schema.XmlSchemaSet>
; V21 tmp17 [V21,T43] ( 5, 2.27) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.Xml.NameTable>
;* V22 tmp18 [V22 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewArr temp" <<unknown class>>
-; V23 tmp19 [V23,T07] ( 4, 8 ) int -> [rsp+0x30] spill-single-def "Inlining Arg"
+; V23 tmp19 [V23,T15] ( 3, 6 ) int -> [rsp+0x30] spill-single-def "Inlining Arg"
; V24 tmp20 [V24,T33] ( 3, 3.35) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.Xml.Schema.XmlSchemaSet>
; V25 tmp21 [V25,T16] ( 7, 5.58) ref -> r14 class-hnd single-def "impAppendStmt" <System.Xml.Schema.XmlSchemaSet>
;* V26 tmp22 [V26 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Xml.Schema.XmlSchemaSet>
@@ -92,8 +92,8 @@
; V80 tmp76 [V80,T22] ( 3, 4.00) ref -> rdx class-hnd exact single-def "Inlining Arg" <System.Xml.Schema.ValidationEventHandler>
; V81 tmp77 [V81,T50] ( 4, 2.00) ref -> rdx class-hnd "Inline return value spill temp" <System.Delegate>
; V82 tmp78 [V82,T23] ( 3, 4.00) ref -> rcx class-hnd exact single-def "Inlining Arg" <System.Xml.Schema.ValidationEventHandler>
-; V83 tmp79 [V83,T15] ( 3, 6.00) ref -> rdx class-hnd single-def "Inlining Arg" <System.Xml.IXmlLineInfo>
-; V84 tmp80 [V84,T11] ( 4, 6.00) ref -> rax class-hnd exact single-def "Inlining Arg" <System.Xml.Schema.XmlSchemaValidator>
+; V83 tmp79 [V83,T14] ( 3, 6.00) ref -> rdx class-hnd single-def "Inlining Arg" <System.Xml.IXmlLineInfo>
+; V84 tmp80 [V84,T10] ( 4, 6.00) ref -> rax class-hnd exact single-def "Inlining Arg" <System.Xml.Schema.XmlSchemaValidator>
;* V85 tmp81 [V85,T66] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V86 tmp82 [V86,T26] ( 2, 4.00) ref -> rcx class-hnd exact single-def "Inlining Arg" <System.Xml.Schema.XmlSchemaValidator>
;* V87 tmp83 [V87 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Xml.Schema.XmlSchemaValidator>
@@ -135,7 +135,7 @@
; V123 rat1 [V123,T63] ( 3, 1.12) long -> r8 "CSE for expectedClsNode"
; V124 rat2 [V124,T30] ( 4, 3.91) ref -> r13 "replacement local"
; V125 rat3 [V125,T64] ( 3, 1.12) long -> rcx "CSE for expectedClsNode"
-; V126 rat4 [V126,T10] ( 4, 7.00) ref -> rax "replacement local"
+; V126 rat4 [V126,T09] ( 4, 7.00) ref -> rax "replacement local"
; V127 rat5 [V127,T53] ( 3, 2.00) long -> rcx "CSE for expectedClsNode"
; V128 rat6 [V128,T68] ( 5, 5.58) simd16 -> mm0 "ReplaceWithLclVar is creating a new local variable"
; TEMP_01 int -> [rsp+0x34]
@@ -203,12 +203,9 @@ G_M44842_IG03: ; bbWeight=1, gcrefRegs=C0E8 {rbx rbp rsi rdi r14 r15}, by
; byrRegs -[rcx]
mov r13d, dword ptr [rsp+0x30]
mov dword ptr [r12+0xF0], r13d
- mov ecx, r13d
- and ecx, 1
- and r13d, 2
- or ecx, r13d
+ test r13b, 3
je G_M44842_IG44
- ;; size=135 bbWeight=1 PerfScore 18.50
+ ;; size=126 bbWeight=1 PerfScore 17.75
G_M44842_IG04: ; bbWeight=0.56, gcrefRegs=D0E8 {rbx rbp rsi rdi r12 r14 r15}, byrefRegs=0000 {}, byref
mov rcx, 0xD1FFAB1E ; System.Xml.Schema.XmlSchemaSet
call CORINFO_HELP_NEWSFAST
@@ -1198,7 +1195,7 @@ RWD04 dd 40400000h ; 3
RWD08 dd 4F000000h ; 2.14748e+09
-; Total bytes of code 2388, prolog size 16, PerfScore 240.78, instruction count 525, allocated bytes for code 2388 (MethodHash=b4b550d5) for method System.Xml.XsdValidatingReader:SetupValidator(System.Xml.XmlReaderSettings,System.Xml.XmlReader,System.Xml.Schema.XmlSchemaObject):this (Tier1)
+; Total bytes of code 2379, prolog size 16, PerfScore 240.03, instruction count 522, allocated bytes for code 2379 (MethodHash=b4b550d5) for method System.Xml.XsdValidatingReader:SetupValidator(System.Xml.XmlReaderSettings,System.Xml.XmlReader,System.Xml.Schema.XmlSchemaObject):this (Tier1)
; ============================================================
Unwind Info:-8 (-0.35%) : 748512.dasm - System.Runtime.InteropServices.Marshalling.IComExposedDetails:GetFromAttribute(System.RuntimeTypeHandle):System.Runtime.InteropServices.Marshalling.IComExposedDetails (Tier1)
@@ -28,7 +28,7 @@
; V16 tmp14 [V16,T80] ( 6, 0 ) ref -> rbp class-hnd "Inline stloc first use temp" <System.RuntimeType>
;* V17 tmp15 [V17,T94] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V18 tmp16 [V18,T81] ( 5, 0 ) ref -> r15 class-hnd exact "Inline stloc first use temp" <System.RuntimeType>
-; V19 tmp17 [V19,T86] ( 3, 0 ) int -> rax "Inline stloc first use temp"
+; V19 tmp17 [V19,T93] ( 2, 0 ) int -> rax "Inline stloc first use temp"
;* V20 tmp18 [V20 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V21 tmp19 [V21,T50] ( 2, 2 ) int -> rcx
;* V22 tmp20 [V22 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
@@ -70,9 +70,9 @@
;* V58 tmp56 [V58 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V59 tmp57 [V59 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V60 tmp58 [V60 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V61 tmp59 [V61,T87] ( 2, 0 ) ref -> rax class-hnd "Inline return value spill temp" <System.RuntimeType>
+; V61 tmp59 [V61,T86] ( 2, 0 ) ref -> rax class-hnd "Inline return value spill temp" <System.RuntimeType>
; V62 tmp60 [V62,T47] ( 3, 2 ) long -> rax "Inline stloc first use temp"
-; V63 tmp61 [V63,T88] ( 2, 0 ) ref -> rax class-hnd exact single-def "impAppendStmt" <System.RuntimeType>
+; V63 tmp61 [V63,T87] ( 2, 0 ) ref -> rax class-hnd exact single-def "impAppendStmt" <System.RuntimeType>
;* V64 tmp62 [V64 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V65 tmp63 [V65,T48] ( 3, 2 ) int -> rcx
;* V66 tmp64 [V66 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
@@ -176,15 +176,15 @@
; V164 tmp162 [V164,T35] ( 2, 2.67) long -> rax "Cast away GC"
;* V165 tmp163 [V165 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
;* V166 tmp164 [V166 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
-; V167 tmp165 [V167,T89] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
-; V168 tmp166 [V168,T90] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V167 tmp165 [V167,T88] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V168 tmp166 [V168,T89] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
;* V169 tmp167 [V169 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
;* V170 tmp168 [V170 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
-; V171 tmp169 [V171,T91] ( 2, 0 ) ref -> r8 "argument with side effect"
+; V171 tmp169 [V171,T90] ( 2, 0 ) ref -> r8 "argument with side effect"
; V172 tmp170 [V172 ] ( 2, 3.72) struct (24) [rsp+0x40] do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.RuntimeType+ListBuilder`1[System.Object]>
; V173 tmp171 [V173,T17] ( 2, 3.72) int -> r8 "argument with side effect"
-; V174 tmp172 [V174,T92] ( 2, 0 ) ref -> r8 single-def "argument with side effect"
-; V175 tmp173 [V175,T93] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V174 tmp172 [V174,T91] ( 2, 0 ) ref -> r8 single-def "argument with side effect"
+; V175 tmp173 [V175,T92] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
; V176 tmp174 [V176,T38] ( 2, 2.33) ref -> r8 "argument with side effect"
; V177 tmp175 [V177,T65] ( 2, 1 ) int -> rdx "argument with side effect"
;* V178 tmp176 [V178 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
@@ -790,12 +790,9 @@ G_M49538_IG55: ; bbWeight=0, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=
call [System.RuntimeType:get_GenericParameterAttributes():int:this]
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M49538_IG57
- ;; size=71 bbWeight=0 PerfScore 0.00
+ ;; size=63 bbWeight=0 PerfScore 0.00
G_M49538_IG56: ; bbWeight=0, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rbp]
mov rbp, r15
@@ -1200,7 +1197,7 @@ G_M49538_IG91: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 2315, prolog size 48, PerfScore 212.67, instruction count 516, allocated bytes for code 2315 (MethodHash=6ae03e7d) for method System.Runtime.InteropServices.Marshalling.IComExposedDetails:GetFromAttribute(System.RuntimeTypeHandle):System.Runtime.InteropServices.Marshalling.IComExposedDetails (Tier1)
+; Total bytes of code 2307, prolog size 48, PerfScore 212.67, instruction count 513, allocated bytes for code 2307 (MethodHash=6ae03e7d) for method System.Runtime.InteropServices.Marshalling.IComExposedDetails:GetFromAttribute(System.RuntimeTypeHandle):System.Runtime.InteropServices.Marshalling.IComExposedDetails (Tier1)
; ============================================================
Unwind Info:-8 (-0.34%) : 748205.dasm - System.Runtime.InteropServices.Marshalling.IIUnknownDerivedDetails:GetFromAttribute(System.RuntimeTypeHandle):System.Runtime.InteropServices.Marshalling.IIUnknownDerivedDetails (Tier1)
@@ -28,7 +28,7 @@
; V16 tmp14 [V16,T80] ( 6, 0 ) ref -> rbp class-hnd "Inline stloc first use temp" <System.RuntimeType>
;* V17 tmp15 [V17,T94] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V18 tmp16 [V18,T81] ( 5, 0 ) ref -> r15 class-hnd exact "Inline stloc first use temp" <System.RuntimeType>
-; V19 tmp17 [V19,T86] ( 3, 0 ) int -> rax "Inline stloc first use temp"
+; V19 tmp17 [V19,T93] ( 2, 0 ) int -> rax "Inline stloc first use temp"
;* V20 tmp18 [V20 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V21 tmp19 [V21,T50] ( 2, 2 ) int -> rcx
;* V22 tmp20 [V22 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
@@ -70,9 +70,9 @@
;* V58 tmp56 [V58 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V59 tmp57 [V59 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V60 tmp58 [V60 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V61 tmp59 [V61,T87] ( 2, 0 ) ref -> rax class-hnd "Inline return value spill temp" <System.RuntimeType>
+; V61 tmp59 [V61,T86] ( 2, 0 ) ref -> rax class-hnd "Inline return value spill temp" <System.RuntimeType>
; V62 tmp60 [V62,T47] ( 3, 2 ) long -> rax "Inline stloc first use temp"
-; V63 tmp61 [V63,T88] ( 2, 0 ) ref -> rax class-hnd exact single-def "impAppendStmt" <System.RuntimeType>
+; V63 tmp61 [V63,T87] ( 2, 0 ) ref -> rax class-hnd exact single-def "impAppendStmt" <System.RuntimeType>
;* V64 tmp62 [V64 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V65 tmp63 [V65,T48] ( 3, 2 ) int -> rcx
;* V66 tmp64 [V66 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
@@ -176,15 +176,15 @@
; V164 tmp162 [V164,T34] ( 2, 2.67) long -> rax "Cast away GC"
;* V165 tmp163 [V165 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
;* V166 tmp164 [V166 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
-; V167 tmp165 [V167,T89] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
-; V168 tmp166 [V168,T90] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V167 tmp165 [V167,T88] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V168 tmp166 [V168,T89] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
;* V169 tmp167 [V169 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
;* V170 tmp168 [V170 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
-; V171 tmp169 [V171,T91] ( 2, 0 ) ref -> r8 "argument with side effect"
+; V171 tmp169 [V171,T90] ( 2, 0 ) ref -> r8 "argument with side effect"
; V172 tmp170 [V172 ] ( 2, 3.72) struct (24) [rsp+0x40] do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.RuntimeType+ListBuilder`1[System.Object]>
; V173 tmp171 [V173,T17] ( 2, 3.72) int -> r8 "argument with side effect"
-; V174 tmp172 [V174,T92] ( 2, 0 ) ref -> r8 single-def "argument with side effect"
-; V175 tmp173 [V175,T93] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V174 tmp172 [V174,T91] ( 2, 0 ) ref -> r8 single-def "argument with side effect"
+; V175 tmp173 [V175,T92] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
; V176 tmp174 [V176,T38] ( 2, 2.33) ref -> r8 "argument with side effect"
; V177 tmp175 [V177,T65] ( 2, 1.00) int -> rdx "argument with side effect"
;* V178 tmp176 [V178 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
@@ -795,12 +795,9 @@ G_M14530_IG56: ; bbWeight=0, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=
call [System.RuntimeType:get_GenericParameterAttributes():int:this]
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M14530_IG58
- ;; size=71 bbWeight=0 PerfScore 0.00
+ ;; size=63 bbWeight=0 PerfScore 0.00
G_M14530_IG57: ; bbWeight=0, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rbp]
mov rbp, r15
@@ -1201,7 +1198,7 @@ G_M14530_IG91: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 2319, prolog size 48, PerfScore 212.41, instruction count 516, allocated bytes for code 2319 (MethodHash=1133c73d) for method System.Runtime.InteropServices.Marshalling.IIUnknownDerivedDetails:GetFromAttribute(System.RuntimeTypeHandle):System.Runtime.InteropServices.Marshalling.IIUnknownDerivedDetails (Tier1)
+; Total bytes of code 2311, prolog size 48, PerfScore 212.41, instruction count 513, allocated bytes for code 2311 (MethodHash=1133c73d) for method System.Runtime.InteropServices.Marshalling.IIUnknownDerivedDetails:GetFromAttribute(System.RuntimeTypeHandle):System.Runtime.InteropServices.Marshalling.IIUnknownDerivedDetails (Tier1)
; ============================================================
Unwind Info:-12 (-0.32%) : 650525.dasm - System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver:AddMember(System.Text.Json.Serialization.Metadata.JsonTypeInfo,System.Type,System.Reflection.MemberInfo,System.Text.Json.JsonNamingPolicy,System.Reflection.NullabilityInfoContext,System.Nullable`1[int],bool,bool,byref) (Tier1)
@@ -29,7 +29,7 @@
; V17 tmp7 [V17,T76] ( 2, 2.00) ref -> [rbp-0x90] class-hnd exact spill-single-def "Inlining Arg" <System.Text.Json.JsonSerializerOptions>
; V18 tmp8 [V18,T87] ( 2, 2.00) ref -> r12 class-hnd single-def "Inline stloc first use temp" <System.Text.Json.Serialization.JsonConverter>
;* V19 tmp9 [V19 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "dup spill" <System.Text.Json.Serialization.Metadata.JsonPropertyInfo>
-; V20 tmp10 [V20,T139] ( 2, 0.00) ref -> rdx class-hnd single-def "impSpillSpecialSideEff" <System.Object>
+; V20 tmp10 [V20,T138] ( 2, 0.00) ref -> rdx class-hnd single-def "impSpillSpecialSideEff" <System.Object>
;* V21 tmp11 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd "dup spill" <<unknown class>>
;* V22 tmp12 [V22 ] ( 0, 0 ) ref -> zero-ref
; V23 tmp13 [V23,T135] ( 3, 0.00) int -> rax
@@ -63,7 +63,7 @@
; V51 tmp41 [V51,T129] ( 6, 0 ) ref -> [rbp-0xA0] class-hnd "Inline stloc first use temp" <System.RuntimeType>
;* V52 tmp42 [V52,T145] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V53 tmp43 [V53,T130] ( 5, 0 ) ref -> [rbp-0xA8] class-hnd exact spill-single-def "Inline stloc first use temp" <System.RuntimeType>
-; V54 tmp44 [V54,T136] ( 3, 0 ) int -> rax "Inline stloc first use temp"
+; V54 tmp44 [V54,T141] ( 2, 0 ) int -> rax "Inline stloc first use temp"
;* V55 tmp45 [V55 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V56 tmp46 [V56,T78] ( 2, 2 ) int -> rax
;* V57 tmp47 [V57 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
@@ -259,8 +259,8 @@
; V247 tmp237 [V247 ] ( 5, 2.00) int -> [rbp-0x3C] do-not-enreg[X] addr-exposed "field V16.value (fldOffset=0x4)" P-DEP
; V248 tmp238 [V248,T88] ( 3, 1.99) ubyte -> r14 "field V26.hasValue (fldOffset=0x0)" P-INDEP
; V249 tmp239 [V249,T104] ( 3, 1 ) int -> r15 "field V26.value (fldOffset=0x4)" P-INDEP
-; V250 tmp240 [V250,T137] ( 3, 0 ) ubyte -> rcx "field V27.hasValue (fldOffset=0x0)" P-INDEP
-; V251 tmp241 [V251,T138] ( 3, 0 ) int -> rax "field V27.value (fldOffset=0x4)" P-INDEP
+; V250 tmp240 [V250,T136] ( 3, 0 ) ubyte -> rcx "field V27.hasValue (fldOffset=0x0)" P-INDEP
+; V251 tmp241 [V251,T137] ( 3, 0 ) int -> rax "field V27.value (fldOffset=0x4)" P-INDEP
;* V252 tmp242 [V252 ] ( 0, 0 ) ubyte -> zero-ref "field V28.hasValue (fldOffset=0x0)" P-INDEP
;* V253 tmp243 [V253 ] ( 0, 0 ) int -> zero-ref "field V28.value (fldOffset=0x4)" P-INDEP
;* V254 tmp244 [V254 ] ( 0, 0 ) ubyte -> zero-ref "field V29.hasValue (fldOffset=0x0)" P-INDEP
@@ -287,9 +287,9 @@
; V275 tmp265 [V275,T42] ( 2, 3.02) long -> rax "Cast away GC"
;* V276 tmp266 [V276,T144] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
;* V277 tmp267 [V277,T115] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
-; V278 tmp268 [V278,T140] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V278 tmp268 [V278,T139] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
;* V279 tmp269 [V279 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
-; V280 tmp270 [V280,T141] ( 2, 0 ) ref -> r8 single-def "argument with side effect"
+; V280 tmp270 [V280,T140] ( 2, 0 ) ref -> r8 single-def "argument with side effect"
;* V281 tmp271 [V281 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
; V282 cse0 [V282,T50] ( 3, 3.00) ref -> rdx "CSE #22: conservative"
; V283 cse1 [V283,T51] ( 3, 3.00) int -> [rbp-0x74] spill-single-def "CSE #24: conservative"
@@ -1479,12 +1479,9 @@ G_M44568_IG110: ; bbWeight=0, gcVars=000000000000002200000000000010000000
call [System.RuntimeType:get_GenericParameterAttributes():int:this]
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M44568_IG112
- ;; size=90 bbWeight=0 PerfScore 0.00
+ ;; size=82 bbWeight=0 PerfScore 0.00
G_M44568_IG111: ; bbWeight=0, gcVars=000000000000002400000000000010000000000000001004 {V00 V03 V17 V50 V53}, gcrefRegs=3048 {rbx rsi r12 r13}, byrefRegs=0000 {}, gcvars, byref
; GC ptr vars -{V51}
mov r8, gword ptr [rbp-0xA8]
@@ -1505,7 +1502,7 @@ G_M44568_IG112: ; bbWeight=0, gcVars=000000000000002200000000000010000000
;; size=16 bbWeight=0 PerfScore 0.00
G_M44568_IG113: ; bbWeight=0, gcrefRegs=3049 {rax rbx rsi r12 r13}, byrefRegs=0000 {}, byref, isz
cmp dword ptr [rax+0x08], r10d
- jg G_M44568_IG110
+ jg SHORT G_M44568_IG110
mov rcx, 0xD1FFAB1E
; gcrRegs +[rcx]
cmp gword ptr [rbp-0xA0], rcx
@@ -1523,7 +1520,7 @@ G_M44568_IG113: ; bbWeight=0, gcrefRegs=3049 {rax rbx rsi r12 r13}, byref
cmove r8, gword ptr [rbp-0xA0]
mov rcx, r8
mov gword ptr [rbp-0xA0], rcx
- ;; size=71 bbWeight=0 PerfScore 0.00
+ ;; size=67 bbWeight=0 PerfScore 0.00
G_M44568_IG114: ; bbWeight=0, gcrefRegs=3048 {rbx rsi r12 r13}, byrefRegs=0000 {}, byref
; gcrRegs -[rcx r8]
mov r8, gword ptr [rbp-0xA0]
@@ -2120,7 +2117,7 @@ G_M44568_IG171: ; bbWeight=0.00, funclet epilog, nogc, extend
ret
;; size=5 bbWeight=0.00 PerfScore 0.00
-; Total bytes of code 3801, prolog size 58, PerfScore 353.56, instruction count 858, allocated bytes for code 3801 (MethodHash=c86451e7) for method System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver:AddMember(System.Text.Json.Serialization.Metadata.JsonTypeInfo,System.Type,System.Reflection.MemberInfo,System.Text.Json.JsonNamingPolicy,System.Reflection.NullabilityInfoContext,System.Nullable`1[int],bool,bool,byref) (Tier1)
+; Total bytes of code 3789, prolog size 58, PerfScore 353.56, instruction count 855, allocated bytes for code 3789 (MethodHash=c86451e7) for method System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver:AddMember(System.Text.Json.Serialization.Metadata.JsonTypeInfo,System.Type,System.Reflection.MemberInfo,System.Text.Json.JsonNamingPolicy,System.Reflection.NullabilityInfoContext,System.Nullable`1[int],bool,bool,byref) (Tier1)
; ============================================================
Unwind Info:-16 (-0.31%) : 665222.dasm - System.Text.Json.Serialization.Converters.EnumConverter`1[sbyte]:ResolveEnumFields(System.Text.Json.JsonNamingPolicy):System.Text.Json.Serialization.Converters.EnumConverter`1+EnumFieldInfo[sbyte][] (Tier1)
@@ -303,7 +303,7 @@
; V291 tmp276 [V291,T157] ( 5, 0 ) ref -> [rbp-0x1A8] class-hnd "Inline stloc first use temp" <System.RuntimeType>
;* V292 tmp277 [V292,T177] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V293 tmp278 [V293,T158] ( 5, 0 ) ref -> [rbp-0x1B0] class-hnd exact spill-single-def "Inline stloc first use temp" <System.RuntimeType>
-; V294 tmp279 [V294,T169] ( 3, 0 ) int -> rax "Inline stloc first use temp"
+; V294 tmp279 [V294,T172] ( 2, 0 ) int -> rax "Inline stloc first use temp"
;* V295 tmp280 [V295 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V296 tmp281 [V296,T38] ( 2, 10.00) int -> rcx
;* V297 tmp282 [V297 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
@@ -342,7 +342,7 @@
; V330 tmp315 [V330,T159] ( 5, 0 ) ref -> [rbp-0x1F8] class-hnd "Inline stloc first use temp" <System.RuntimeType>
;* V331 tmp316 [V331,T178] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V332 tmp317 [V332,T160] ( 5, 0 ) ref -> [rbp-0x200] class-hnd exact spill-single-def "Inline stloc first use temp" <System.RuntimeType>
-; V333 tmp318 [V333,T170] ( 3, 0 ) int -> rax "Inline stloc first use temp"
+; V333 tmp318 [V333,T173] ( 2, 0 ) int -> rax "Inline stloc first use temp"
;* V334 tmp319 [V334 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V335 tmp320 [V335,T94] ( 2, 3.71) int -> rcx
;* V336 tmp321 [V336 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
@@ -508,13 +508,13 @@
;* V496 tmp481 [V496,T138] ( 0, 0 ) ubyte -> zero-ref "V32.[016..017)"
; V497 tmp482 [V497,T14] ( 2, 15.09) long -> rax "Cast away GC"
;* V498 tmp483 [V498,T176] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-; V499 tmp484 [V499,T171] ( 2, 0 ) ref -> rdx "argument with side effect"
+; V499 tmp484 [V499,T169] ( 2, 0 ) ref -> rdx "argument with side effect"
; V500 tmp485 [V500,T59] ( 2, 5.60) long -> rax "Cast away GC"
; V501 tmp486 [V501,T45] ( 3, 8.35) ref -> rax "argument with side effect"
; V502 tmp487 [V502,T50] ( 2, 7.42) ref -> rdx "argument with side effect"
; V503 tmp488 [V503 ] ( 2, 3.71) struct (16) [rbp-0x120] do-not-enreg[XS] addr-exposed "by-value struct argument" <System.Runtime.CompilerServices.QCallTypeHandle>
-; V504 tmp489 [V504,T172] ( 2, 0 ) ref -> r8 "argument with side effect"
-; V505 tmp490 [V505,T173] ( 2, 0 ) ref -> rdx "argument with side effect"
+; V504 tmp489 [V504,T170] ( 2, 0 ) ref -> r8 "argument with side effect"
+; V505 tmp490 [V505,T171] ( 2, 0 ) ref -> rdx "argument with side effect"
;* V506 tmp491 [V506 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
; V507 cse0 [V507,T100] ( 3, 3.00) int -> r12 "CSE #06: moderate"
; V508 cse1 [V508,T44] ( 2, 8.46) int -> rdx "CSE #34: moderate"
@@ -2133,12 +2133,9 @@ G_M13003_IG151: ; bbWeight=0, gcVars=000000402000000000000000000000000000
call [System.RuntimeType:get_GenericParameterAttributes():int:this]
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M13003_IG153
- ;; size=90 bbWeight=0 PerfScore 0.00
+ ;; size=82 bbWeight=0 PerfScore 0.00
G_M13003_IG152: ; bbWeight=0, gcVars=00000040400000000000000000000000000000800C000030 {V01 V02 V05 V07 V290 V293 V510}, gcrefRegs=C088 {rbx rdi r14 r15}, byrefRegs=0000 {}, gcvars, byref
; GC ptr vars -{V291}
mov rcx, gword ptr [rbp-0x1B0]
@@ -2282,12 +2279,9 @@ G_M13003_IG161: ; bbWeight=0, gcVars=000000808000000000000000000000000000
call [System.RuntimeType:get_GenericParameterAttributes():int:this]
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M13003_IG163
- ;; size=90 bbWeight=0 PerfScore 0.00
+ ;; size=82 bbWeight=0 PerfScore 0.00
G_M13003_IG162: ; bbWeight=0, gcVars=00000081000000000000000000000000000000800C000030 {V01 V02 V05 V07 V329 V332 V510}, gcrefRegs=C088 {rbx rdi r14 r15}, byrefRegs=0000 {}, gcvars, byref
; GC ptr vars -{V330}
mov rcx, gword ptr [rbp-0x200]
@@ -2697,7 +2691,7 @@ G_M13003_IG197: ; bbWeight=0, gcVars=000000000000000000000000000000000000
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 5148, prolog size 64, PerfScore 1102.06, instruction count 1039, allocated bytes for code 5148 (MethodHash=34c6cd34) for method System.Text.Json.Serialization.Converters.EnumConverter`1[sbyte]:ResolveEnumFields(System.Text.Json.JsonNamingPolicy):System.Text.Json.Serialization.Converters.EnumConverter`1+EnumFieldInfo[sbyte][] (Tier1)
+; Total bytes of code 5132, prolog size 64, PerfScore 1102.06, instruction count 1033, allocated bytes for code 5132 (MethodHash=34c6cd34) for method System.Text.Json.Serialization.Converters.EnumConverter`1[sbyte]:ResolveEnumFields(System.Text.Json.JsonNamingPolicy):System.Text.Json.Serialization.Converters.EnumConverter`1+EnumFieldInfo[sbyte][] (Tier1)
; ============================================================
Unwind Info:-16 (-0.31%) : 665255.dasm - System.Text.Json.Serialization.Converters.EnumConverter`1[short]:ResolveEnumFields(System.Text.Json.JsonNamingPolicy):System.Text.Json.Serialization.Converters.EnumConverter`1+EnumFieldInfo[short][] (Tier1)
@@ -303,7 +303,7 @@
; V291 tmp276 [V291,T157] ( 5, 0 ) ref -> [rbp-0x1A8] class-hnd "Inline stloc first use temp" <System.RuntimeType>
;* V292 tmp277 [V292,T177] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V293 tmp278 [V293,T158] ( 5, 0 ) ref -> [rbp-0x1B0] class-hnd exact spill-single-def "Inline stloc first use temp" <System.RuntimeType>
-; V294 tmp279 [V294,T169] ( 3, 0 ) int -> rax "Inline stloc first use temp"
+; V294 tmp279 [V294,T172] ( 2, 0 ) int -> rax "Inline stloc first use temp"
;* V295 tmp280 [V295 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V296 tmp281 [V296,T38] ( 2, 10.00) int -> rcx
;* V297 tmp282 [V297 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
@@ -342,7 +342,7 @@
; V330 tmp315 [V330,T159] ( 5, 0 ) ref -> [rbp-0x1F8] class-hnd "Inline stloc first use temp" <System.RuntimeType>
;* V331 tmp316 [V331,T178] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V332 tmp317 [V332,T160] ( 5, 0 ) ref -> [rbp-0x200] class-hnd exact spill-single-def "Inline stloc first use temp" <System.RuntimeType>
-; V333 tmp318 [V333,T170] ( 3, 0 ) int -> rax "Inline stloc first use temp"
+; V333 tmp318 [V333,T173] ( 2, 0 ) int -> rax "Inline stloc first use temp"
;* V334 tmp319 [V334 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V335 tmp320 [V335,T94] ( 2, 3.71) int -> rcx
;* V336 tmp321 [V336 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
@@ -508,13 +508,13 @@
;* V496 tmp481 [V496,T138] ( 0, 0 ) ubyte -> zero-ref "V53.[016..017)"
; V497 tmp482 [V497,T14] ( 2, 15.09) long -> rax "Cast away GC"
;* V498 tmp483 [V498,T176] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-; V499 tmp484 [V499,T171] ( 2, 0 ) ref -> rdx "argument with side effect"
+; V499 tmp484 [V499,T169] ( 2, 0 ) ref -> rdx "argument with side effect"
; V500 tmp485 [V500,T59] ( 2, 5.60) long -> rax "Cast away GC"
; V501 tmp486 [V501,T45] ( 3, 8.35) ref -> rax "argument with side effect"
; V502 tmp487 [V502,T50] ( 2, 7.42) ref -> rdx "argument with side effect"
; V503 tmp488 [V503 ] ( 2, 3.71) struct (16) [rbp-0x120] do-not-enreg[XS] addr-exposed "by-value struct argument" <System.Runtime.CompilerServices.QCallTypeHandle>
-; V504 tmp489 [V504,T172] ( 2, 0 ) ref -> r8 "argument with side effect"
-; V505 tmp490 [V505,T173] ( 2, 0 ) ref -> rdx "argument with side effect"
+; V504 tmp489 [V504,T170] ( 2, 0 ) ref -> r8 "argument with side effect"
+; V505 tmp490 [V505,T171] ( 2, 0 ) ref -> rdx "argument with side effect"
;* V506 tmp491 [V506 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
; V507 cse0 [V507,T44] ( 2, 8.67) int -> rdx "CSE #34: moderate"
; V508 cse1 [V508,T54] ( 3, 6.44) int -> rdx "CSE #07: moderate"
@@ -2134,12 +2134,9 @@ G_M1035_IG151: ; bbWeight=0, gcVars=0000004020000000000000000000000000000
call [System.RuntimeType:get_GenericParameterAttributes():int:this]
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M1035_IG153
- ;; size=90 bbWeight=0 PerfScore 0.00
+ ;; size=82 bbWeight=0 PerfScore 0.00
G_M1035_IG152: ; bbWeight=0, gcVars=00000040400000000000000000000000000000800C000030 {V01 V02 V05 V07 V290 V293 V509}, gcrefRegs=C088 {rbx rdi r14 r15}, byrefRegs=0000 {}, gcvars, byref
; GC ptr vars -{V291}
mov rcx, gword ptr [rbp-0x1B0]
@@ -2283,12 +2280,9 @@ G_M1035_IG161: ; bbWeight=0, gcVars=0000008080000000000000000000000000000
call [System.RuntimeType:get_GenericParameterAttributes():int:this]
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M1035_IG163
- ;; size=90 bbWeight=0 PerfScore 0.00
+ ;; size=82 bbWeight=0 PerfScore 0.00
G_M1035_IG162: ; bbWeight=0, gcVars=00000081000000000000000000000000000000800C000030 {V01 V02 V05 V07 V329 V332 V509}, gcrefRegs=C088 {rbx rdi r14 r15}, byrefRegs=0000 {}, gcvars, byref
; GC ptr vars -{V330}
mov rcx, gword ptr [rbp-0x200]
@@ -2698,7 +2692,7 @@ G_M1035_IG197: ; bbWeight=0, gcVars=0000000000000000000000000000000000000
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 5148, prolog size 64, PerfScore 1108.15, instruction count 1039, allocated bytes for code 5148 (MethodHash=55f8fbf4) for method System.Text.Json.Serialization.Converters.EnumConverter`1[short]:ResolveEnumFields(System.Text.Json.JsonNamingPolicy):System.Text.Json.Serialization.Converters.EnumConverter`1+EnumFieldInfo[short][] (Tier1)
+; Total bytes of code 5132, prolog size 64, PerfScore 1108.15, instruction count 1033, allocated bytes for code 5132 (MethodHash=55f8fbf4) for method System.Text.Json.Serialization.Converters.EnumConverter`1[short]:ResolveEnumFields(System.Text.Json.JsonNamingPolicy):System.Text.Json.Serialization.Converters.EnumConverter`1+EnumFieldInfo[short][] (Tier1)
; ============================================================
Unwind Info:-8 (-0.31%) : 748510.dasm - System.Runtime.InteropServices.Marshalling.StrategyBasedComWrappers:ComputeVtables(System.Object,int,byref):ptr:this (Tier1)
@@ -42,7 +42,7 @@
; V30 tmp25 [V30,T88] ( 6, 0 ) ref -> r14 class-hnd "Inline stloc first use temp" <System.RuntimeType>
;* V31 tmp26 [V31,T102] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V32 tmp27 [V32,T89] ( 5, 0 ) ref -> r13 class-hnd exact "Inline stloc first use temp" <System.RuntimeType>
-; V33 tmp28 [V33,T94] ( 3, 0 ) int -> rax "Inline stloc first use temp"
+; V33 tmp28 [V33,T101] ( 2, 0 ) int -> rax "Inline stloc first use temp"
;* V34 tmp29 [V34 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V35 tmp30 [V35,T56] ( 2, 2 ) int -> rcx
;* V36 tmp31 [V36 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
@@ -84,9 +84,9 @@
;* V72 tmp67 [V72 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V73 tmp68 [V73 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V74 tmp69 [V74 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V75 tmp70 [V75,T95] ( 2, 0 ) ref -> rax class-hnd "Inline return value spill temp" <System.RuntimeType>
+; V75 tmp70 [V75,T94] ( 2, 0 ) ref -> rax class-hnd "Inline return value spill temp" <System.RuntimeType>
; V76 tmp71 [V76,T52] ( 3, 2 ) long -> rax "Inline stloc first use temp"
-; V77 tmp72 [V77,T96] ( 2, 0 ) ref -> rax class-hnd exact single-def "impAppendStmt" <System.RuntimeType>
+; V77 tmp72 [V77,T95] ( 2, 0 ) ref -> rax class-hnd exact single-def "impAppendStmt" <System.RuntimeType>
;* V78 tmp73 [V78 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V79 tmp74 [V79,T53] ( 3, 2 ) int -> rcx
;* V80 tmp75 [V80 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
@@ -199,15 +199,15 @@
; V187 tmp182 [V187,T39] ( 2, 2.67) long -> rax "Cast away GC"
;* V188 tmp183 [V188 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
;* V189 tmp184 [V189 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
-; V190 tmp185 [V190,T97] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
-; V191 tmp186 [V191,T98] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V190 tmp185 [V190,T96] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V191 tmp186 [V191,T97] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
;* V192 tmp187 [V192 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
;* V193 tmp188 [V193 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
-; V194 tmp189 [V194,T99] ( 2, 0 ) ref -> r8 "argument with side effect"
+; V194 tmp189 [V194,T98] ( 2, 0 ) ref -> r8 "argument with side effect"
; V195 tmp190 [V195 ] ( 2, 3.72) struct (24) [rsp+0x40] do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.RuntimeType+ListBuilder`1[System.Object]>
; V196 tmp191 [V196,T20] ( 2, 3.72) int -> r8 "argument with side effect"
-; V197 tmp192 [V197,T100] ( 2, 0 ) ref -> r8 single-def "argument with side effect"
-; V198 tmp193 [V198,T101] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V197 tmp192 [V197,T99] ( 2, 0 ) ref -> r8 single-def "argument with side effect"
+; V198 tmp193 [V198,T100] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
; V199 tmp194 [V199,T72] ( 2, 1 ) int -> rdx "argument with side effect"
;* V200 tmp195 [V200 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
; V201 cse0 [V201,T25] ( 4, 3.28) int -> rsi "CSE #12: conservative"
@@ -875,12 +875,9 @@ G_M63035_IG62: ; bbWeight=0, gcrefRegs=40E0 {rbp rsi rdi r14}, byrefRegs=
call [System.RuntimeType:get_GenericParameterAttributes():int:this]
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M63035_IG64
- ;; size=71 bbWeight=0 PerfScore 0.00
+ ;; size=63 bbWeight=0 PerfScore 0.00
G_M63035_IG63: ; bbWeight=0, gcrefRegs=20E0 {rbp rsi rdi r13}, byrefRegs=0008 {rbx}, byref
; gcrRegs -[r14]
mov r14, r13
@@ -1345,7 +1342,7 @@ G_M63035_IG103: ; bbWeight=0, gcVars=00000000000000000000000000000000 {},
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 2593, prolog size 59, PerfScore 239.30, instruction count 566, allocated bytes for code 2593 (MethodHash=60cf09c4) for method System.Runtime.InteropServices.Marshalling.StrategyBasedComWrappers:ComputeVtables(System.Object,int,byref):ptr:this (Tier1)
+; Total bytes of code 2585, prolog size 59, PerfScore 239.30, instruction count 563, allocated bytes for code 2585 (MethodHash=60cf09c4) for method System.Runtime.InteropServices.Marshalling.StrategyBasedComWrappers:ComputeVtables(System.Object,int,byref):ptr:this (Tier1)
; ============================================================
Unwind Info:-8 (-0.24%) : 748509.dasm - System.Runtime.InteropServices.ComWrappers:CreateManagedObjectWrapper(System.Object,int):ptr:this (Tier1)
@@ -70,7 +70,7 @@
; V58 tmp39 [V58,T128] ( 6, 0 ) ref -> r13 class-hnd "Inline stloc first use temp" <System.RuntimeType>
;* V59 tmp40 [V59,T144] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V60 tmp41 [V60,T129] ( 5, 0 ) ref -> [rbp-0xF8] class-hnd exact spill-single-def ptr "Inline stloc first use temp" <System.RuntimeType>
-; V61 tmp42 [V61,T136] ( 3, 0 ) int -> rax "Inline stloc first use temp"
+; V61 tmp42 [V61,T143] ( 2, 0 ) int -> rax "Inline stloc first use temp"
;* V62 tmp43 [V62 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V63 tmp44 [V63,T89] ( 2, 2 ) int -> rcx
;* V64 tmp45 [V64 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
@@ -112,9 +112,9 @@
;* V100 tmp81 [V100 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V101 tmp82 [V101 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V102 tmp83 [V102 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V103 tmp84 [V103,T137] ( 2, 0 ) ref -> rax class-hnd "Inline return value spill temp" <System.RuntimeType>
+; V103 tmp84 [V103,T136] ( 2, 0 ) ref -> rax class-hnd "Inline return value spill temp" <System.RuntimeType>
; V104 tmp85 [V104,T83] ( 3, 2 ) long -> rax "Inline stloc first use temp"
-; V105 tmp86 [V105,T138] ( 2, 0 ) ref -> rax class-hnd exact single-def "impAppendStmt" <System.RuntimeType>
+; V105 tmp86 [V105,T137] ( 2, 0 ) ref -> rax class-hnd exact single-def "impAppendStmt" <System.RuntimeType>
;* V106 tmp87 [V106 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V107 tmp88 [V107,T84] ( 3, 2 ) int -> rcx
;* V108 tmp89 [V108 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
@@ -253,15 +253,15 @@
; V241 tmp222 [V241,T67] ( 2, 2.67) long -> rax "Cast away GC"
;* V242 tmp223 [V242 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
;* V243 tmp224 [V243 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
-; V244 tmp225 [V244,T139] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
-; V245 tmp226 [V245,T140] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V244 tmp225 [V244,T138] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V245 tmp226 [V245,T139] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
;* V246 tmp227 [V246 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
;* V247 tmp228 [V247 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
-; V248 tmp229 [V248,T141] ( 2, 0 ) ref -> r8 "argument with side effect"
+; V248 tmp229 [V248,T140] ( 2, 0 ) ref -> r8 "argument with side effect"
; V249 tmp230 [V249 ] ( 2, 3.72) struct (24) [rbp-0xE8] do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.RuntimeType+ListBuilder`1[System.Object]>
; V250 tmp231 [V250,T42] ( 2, 3.72) int -> r8 "argument with side effect"
-; V251 tmp232 [V251,T142] ( 2, 0 ) ref -> r8 single-def "argument with side effect"
-; V252 tmp233 [V252,T143] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V251 tmp232 [V251,T141] ( 2, 0 ) ref -> r8 single-def "argument with side effect"
+; V252 tmp233 [V252,T142] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
; V253 tmp234 [V253,T108] ( 2, 1 ) int -> rdx "argument with side effect"
;* V254 tmp235 [V254 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
; V255 tmp236 [V255,T53] ( 3, 3.00) byref -> r10 "Field obj"
@@ -1135,12 +1135,9 @@ G_M59572_IG83: ; bbWeight=0, gcrefRegs=A0C0 {rsi rdi r13 r15}, byrefRegs=
call [System.RuntimeType:get_GenericParameterAttributes():int:this]
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M59572_IG85
- ;; size=83 bbWeight=0 PerfScore 0.00
+ ;; size=75 bbWeight=0 PerfScore 0.00
G_M59572_IG84: ; bbWeight=0, gcrefRegs=80C0 {rsi rdi r15}, byrefRegs=0000 {}, byref
; gcrRegs -[r13]
mov r13, gword ptr [rbp-0xF8]
@@ -1676,7 +1673,7 @@ G_M59572_IG133: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 3391, prolog size 92, PerfScore 360.44, instruction count 737, allocated bytes for code 3391 (MethodHash=5af5174b) for method System.Runtime.InteropServices.ComWrappers:CreateManagedObjectWrapper(System.Object,int):ptr:this (Tier1)
+; Total bytes of code 3383, prolog size 92, PerfScore 360.44, instruction count 734, allocated bytes for code 3383 (MethodHash=5af5174b) for method System.Runtime.InteropServices.ComWrappers:CreateManagedObjectWrapper(System.Object,int):ptr:this (Tier1)
; ============================================================
Unwind Info:-8 (-0.23%) : 127784.dasm - Xunit.Sdk.TypeUtility:ResolveMethodArguments(System.Reflection.MethodBase,System.Object[]):System.Object[] (Tier1)
@@ -18,7 +18,7 @@
; V06 loc4 [V06,T52] ( 4, 2.00) int -> r13
; V07 loc5 [V07,T56] ( 3, 2.00) int -> rbx single-def
; V08 loc6 [V08,T96] ( 4, 0 ) ref -> r12 class-hnd single-def <System.Type>
-; V09 loc7 [V09,T112] ( 2, 0 ) ref -> rax class-hnd single-def <System.Array>
+; V09 loc7 [V09,T111] ( 2, 0 ) ref -> rax class-hnd single-def <System.Array>
; V10 loc8 [V10,T109] ( 3, 0 ) int -> r13 single-def
; V11 loc9 [V11,T97] ( 4, 0 ) ref -> r12 class-hnd single-def <System.Array>
;* V12 loc10 [V12,T71] ( 0, 0 ) int -> zero-ref
@@ -32,17 +32,17 @@
; V20 tmp5 [V20,T03] ( 6, 16.40) ref -> [rbp-0x50] class-hnd spill-single-def "impAppendStmt" <System.Object>
; V21 tmp6 [V21,T10] ( 4, 8.20) ref -> rdx class-hnd "Strict ordering of exceptions for Array store" <System.Object>
; V22 tmp7 [V22,T57] ( 3, 2.00) int -> rbx
-; V23 tmp8 [V23,T113] ( 2, 0 ) ref -> rax class-hnd "Strict ordering of exceptions for Array store" <System.Object>
-; V24 tmp9 [V24,T114] ( 2, 0 ) ref -> rax class-hnd "Strict ordering of exceptions for Array store" <System.Object>
+; V23 tmp8 [V23,T112] ( 2, 0 ) ref -> rax class-hnd "Strict ordering of exceptions for Array store" <System.Object>
+; V24 tmp9 [V24,T113] ( 2, 0 ) ref -> rax class-hnd "Strict ordering of exceptions for Array store" <System.Object>
; V25 tmp10 [V25,T99] ( 3, 0 ) ref -> rax class-hnd exact single-def "NewArr temp" <int[]>
;* V26 tmp11 [V26 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V27 tmp12 [V27 ] ( 0, 0 ) ref -> zero-ref class-hnd "impSpillSpecialSideEff" <<unknown class>>
; V28 tmp13 [V28,T100] ( 3, 0.00) ref -> r12 class-hnd exact single-def "NewArr temp" <System.Object[]>
-; V29 tmp14 [V29,T115] ( 2, 0.00) ref -> r15 class-hnd single-def "impAppendStmt" <<unknown class>>
-; V30 tmp15 [V30,T116] ( 2, 0.00) ref -> rax class-hnd exact single-def "Strict ordering of exceptions for Array store" <System.String>
+; V29 tmp14 [V29,T114] ( 2, 0.00) ref -> r15 class-hnd single-def "impAppendStmt" <<unknown class>>
+; V30 tmp15 [V30,T115] ( 2, 0.00) ref -> rax class-hnd exact single-def "Strict ordering of exceptions for Array store" <System.String>
; V31 tmp16 [V31,T101] ( 3, 0.00) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
; V32 tmp17 [V32,T110] ( 3, 0 ) int -> rcx "Strict ordering of exceptions for Array store"
-; V33 tmp18 [V33,T117] ( 2, 0 ) ref -> rdx class-hnd single-def "Strict ordering of exceptions for Array store" <System.Object>
+; V33 tmp18 [V33,T116] ( 2, 0 ) ref -> rdx class-hnd single-def "Strict ordering of exceptions for Array store" <System.Object>
;* V34 tmp19 [V34 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewArr temp" <int[]>
; V35 tmp20 [V35,T90] ( 5, 0.02) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Func`2[System.Reflection.ParameterInfo,bool]>
; V36 tmp21 [V36,T50] ( 4, 2 ) ref -> rdi "guarded devirt return temp"
@@ -62,14 +62,14 @@
; V50 tmp35 [V50,T87] ( 4, 0.04) ref -> r8
;* V51 tmp36 [V51 ] ( 0, 0 ) ref -> zero-ref
;* V52 tmp37 [V52 ] ( 0, 0 ) ref -> zero-ref single-def
-; V53 tmp38 [V53,T124] ( 2, 0 ) int -> r14 single-def
+; V53 tmp38 [V53,T123] ( 2, 0 ) int -> r14 single-def
;* V54 tmp39 [V54 ] ( 0, 0 ) ref -> zero-ref single-def
;* V55 tmp40 [V55 ] ( 0, 0 ) int -> zero-ref single-def
;* V56 tmp41 [V56 ] ( 0, 0 ) ref -> zero-ref single-def
;* V57 tmp42 [V57 ] ( 0, 0 ) ref -> zero-ref single-def
;* V58 tmp43 [V58 ] ( 0, 0 ) int -> zero-ref single-def
;* V59 tmp44 [V59 ] ( 0, 0 ) ref -> zero-ref single-def
-; V60 tmp45 [V60,T125] ( 2, 0 ) int -> r9 single-def
+; V60 tmp45 [V60,T124] ( 2, 0 ) int -> r9 single-def
; V61 tmp46 [V61,T24] ( 5, 4.94) int -> rbx "Inlining Arg"
; V62 tmp47 [V62,T38] ( 6, 3.70) long -> r14 single-def "Inline stloc first use temp"
; V63 tmp48 [V63,T67] ( 5, 1.54) long -> r8 single-def "Inline stloc first use temp"
@@ -102,7 +102,7 @@
; V90 tmp75 [V90,T93] ( 6, 0 ) ref -> r13 class-hnd "Inline stloc first use temp" <System.RuntimeType>
;* V91 tmp76 [V91,T128] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V92 tmp77 [V92,T94] ( 5, 0 ) ref -> [rbp-0x68] class-hnd exact spill-single-def "Inline stloc first use temp" <System.RuntimeType>
-; V93 tmp78 [V93,T111] ( 3, 0 ) int -> rax "Inline stloc first use temp"
+; V93 tmp78 [V93,T125] ( 2, 0 ) int -> rax "Inline stloc first use temp"
;* V94 tmp79 [V94 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V95 tmp80 [V95,T58] ( 2, 2 ) int -> rcx
;* V96 tmp81 [V96 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
@@ -163,7 +163,7 @@
;* V151 tmp136 [V151 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
; V152 tmp137 [V152,T28] ( 6, 4.06) int -> r8 "guarded devirt return temp"
;* V153 tmp138 [V153 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Reflection.RuntimeParameterInfo>
-; V154 tmp139 [V154,T118] ( 2, 0 ) ref -> rcx class-hnd exact single-def "Inlining Arg" <System.RuntimeType>
+; V154 tmp139 [V154,T117] ( 2, 0 ) ref -> rcx class-hnd exact single-def "Inlining Arg" <System.RuntimeType>
;* V155 tmp140 [V155 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.RuntimeType>
;* V156 tmp141 [V156 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V157 tmp142 [V157,T76] ( 4, 0.87) ref -> [rbp-0x78] class-hnd "Inline stloc first use temp" <System.RuntimeType>
@@ -174,7 +174,7 @@
;* V162 tmp147 [V162 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V163 tmp148 [V163 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V164 tmp149 [V164 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Type>
-; V165 tmp150 [V165,T119] ( 2, 0 ) ref -> rax class-hnd "dup spill" <System.Object>
+; V165 tmp150 [V165,T118] ( 2, 0 ) ref -> rax class-hnd "dup spill" <System.Object>
; V166 tmp151 [V166,T98] ( 4, 0 ) ref -> rdx
; V167 tmp152 [V167,T11] ( 3, 8.20) ref -> [rbp-0x88] class-hnd exact spill-single-def "Inlining Arg" <System.RuntimeType>
; V168 tmp153 [V168,T04] ( 6, 12.30) ref -> rcx class-hnd "impAppendStmt" <System.Reflection.TypeInfo>
@@ -213,14 +213,14 @@
;* V201 tmp186 [V201 ] ( 0, 0 ) byref -> zero-ref single-def "field V147._reference (fldOffset=0x0)" P-INDEP
;* V202 tmp187 [V202 ] ( 0, 0 ) int -> zero-ref single-def "field V147._length (fldOffset=0x8)" P-INDEP
; V203 tmp188 [V203,T36] ( 2, 3.96) long -> rax "Cast away GC"
-; V204 tmp189 [V204,T120] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
-; V205 tmp190 [V205,T121] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V204 tmp189 [V204,T119] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V205 tmp190 [V205,T120] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
; V206 tmp191 [V206,T79] ( 2, 0.37) ref -> rdx "argument with side effect"
; V207 tmp192 [V207,T107] ( 3, 0 ) ref -> rcx single-def "argument with side effect"
; V208 tmp193 [V208,T108] ( 3, 0 ) ref -> rax single-def "argument with side effect"
; V209 tmp194 [V209,T127] ( 2, 0 ) int -> rdx "argument with side effect"
-; V210 tmp195 [V210,T122] ( 2, 0.00) ref -> rdx single-def "argument with side effect"
-; V211 tmp196 [V211,T123] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V210 tmp195 [V210,T121] ( 2, 0.00) ref -> rdx single-def "argument with side effect"
+; V211 tmp196 [V211,T122] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
; V212 tmp197 [V212,T64] ( 3, 1.74) ref -> rcx "arr expr"
; V213 tmp198 [V213,T65] ( 3, 1.74) int -> r8 "index expr"
;* V214 tmp199 [V214 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
@@ -1087,12 +1087,9 @@ G_M23118_IG85: ; bbWeight=0, gcrefRegs=E088 {rbx rdi r13 r14 r15}, byrefR
call [System.RuntimeType:get_GenericParameterAttributes():int:this]
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M23118_IG87
- ;; size=74 bbWeight=0 PerfScore 0.00
+ ;; size=66 bbWeight=0 PerfScore 0.00
G_M23118_IG86: ; bbWeight=0, gcrefRegs=C088 {rbx rdi r14 r15}, byrefRegs=0000 {}, byref
; gcrRegs -[r13]
mov r13, gword ptr [rbp-0x68]
@@ -1872,7 +1869,7 @@ G_M23118_IG143: ; bbWeight=0.00, funclet epilog, nogc, extend
ret
;; size=5 bbWeight=0.00 PerfScore 0.00
-; Total bytes of code 3475, prolog size 34, PerfScore 294.84, instruction count 799, allocated bytes for code 3475 (MethodHash=5019a5b1) for method Xunit.Sdk.TypeUtility:ResolveMethodArguments(System.Reflection.MethodBase,System.Object[]):System.Object[] (Tier1)
+; Total bytes of code 3467, prolog size 34, PerfScore 294.84, instruction count 796, allocated bytes for code 3467 (MethodHash=5019a5b1) for method Xunit.Sdk.TypeUtility:ResolveMethodArguments(System.Reflection.MethodBase,System.Object[]):System.Object[] (Tier1)
; ============================================================
Unwind Info:-8 (-0.22%) : 114626.dasm - System.Composition.TypedParts.ContractHelpers:GetImportInfo(System.Type,System.Object[],System.Object):System.Composition.TypedParts.ImportInfo (Tier1)
@@ -29,8 +29,8 @@
; V17 OutArgs [V17 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <UNNAMED>
; V18 tmp1 [V18,T03] ( 5, 10 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Composition.Hosting.Core.CompositionContract>
;* V19 tmp2 [V19 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <System.Composition.TypedParts.ContractHelpers+<>c__DisplayClass2_0>
-; V20 tmp3 [V20,T106] ( 2, 0 ) ref -> r8 class-hnd "dup spill" <System.Func`2[System.Reflection.PropertyInfo,bool]>
-; V21 tmp4 [V21,T107] ( 2, 0 ) ref -> [rbp-0xB0] class-hnd spill-single-def "impAppendStmt" <System.Collections.Generic.IEnumerable`1[System.Reflection.PropertyInfo]>
+; V20 tmp3 [V20,T105] ( 2, 0 ) ref -> r8 class-hnd "dup spill" <System.Func`2[System.Reflection.PropertyInfo,bool]>
+; V21 tmp4 [V21,T106] ( 2, 0 ) ref -> [rbp-0xB0] class-hnd spill-single-def "impAppendStmt" <System.Collections.Generic.IEnumerable`1[System.Reflection.PropertyInfo]>
;* V22 tmp5 [V22 ] ( 0, 0 ) ref -> zero-ref
; V23 tmp6 [V23,T91] ( 4, 0 ) ref -> r8
;* V24 tmp7 [V24 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "non-inline candidate call" <System.String>
@@ -104,7 +104,7 @@
;* V92 tmp75 [V92 ] ( 0, 0 ) byref -> zero-ref "Inline return value spill temp"
; V93 tmp76 [V93,T92] ( 4, 0 ) ref -> [rbp-0xE0] class-hnd spill-single-def "Inline stloc first use temp" <int[]>
; V94 tmp77 [V94,T102] ( 3, 0 ) int -> rcx "Inlining Arg"
-; V95 tmp78 [V95,T113] ( 2, 0 ) long -> r10 "Inlining Arg"
+; V95 tmp78 [V95,T112] ( 2, 0 ) long -> r10 "Inlining Arg"
; V96 tmp79 [V96,T93] ( 4, 0 ) int -> [rbp-0x58] spill-single-def "dup spill"
;* V97 tmp80 [V97 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V98 tmp81 [V98 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -132,7 +132,7 @@
; V120 tmp103 [V120,T87] ( 5, 0 ) ref -> [rbp-0x100] class-hnd "Inline stloc first use temp" <System.RuntimeType>
;* V121 tmp104 [V121,T114] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V122 tmp105 [V122,T88] ( 5, 0 ) ref -> [rbp-0x108] class-hnd exact spill-single-def "Inline stloc first use temp" <System.RuntimeType>
-; V123 tmp106 [V123,T103] ( 3, 0 ) int -> rax "Inline stloc first use temp"
+; V123 tmp106 [V123,T113] ( 2, 0 ) int -> rax "Inline stloc first use temp"
;* V124 tmp107 [V124 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V125 tmp108 [V125,T58] ( 2, 1.39) int -> rcx
;* V126 tmp109 [V126 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
@@ -159,18 +159,18 @@
;* V147 tmp130 [V147 ] ( 0, 0 ) long -> zero-ref "field V131.m_asTAddr (fldOffset=0x0)" P-INDEP
;* V148 tmp131 [V148,T79] ( 0, 0 ) long -> zero-ref "field V134.m_asTAddr (fldOffset=0x0)" P-INDEP
; V149 tmp132 [V149,T21] ( 3, 4.16) long -> [rbp-0x60] spill-single-def "Cast away GC"
-; V150 tmp133 [V150,T104] ( 3, 0 ) int -> rcx "index expr"
-; V151 tmp134 [V151,T105] ( 3, 0 ) int -> rcx "index expr"
+; V150 tmp133 [V150,T103] ( 3, 0 ) int -> rcx "index expr"
+; V151 tmp134 [V151,T104] ( 3, 0 ) int -> rcx "index expr"
; V152 tmp135 [V152,T48] ( 2, 2.08) long -> rax "Cast away GC"
; V153 tmp136 [V153,T75] ( 2, 0.82) ref -> rcx "argument with side effect"
; V154 tmp137 [V154,T80] ( 3, 0.46) ref -> rax "argument with side effect"
; V155 tmp138 [V155,T81] ( 2, 0.41) ref -> rcx "argument with side effect"
-; V156 tmp139 [V156,T108] ( 2, 0 ) ref -> rcx "argument with side effect"
-; V157 tmp140 [V157,T109] ( 2, 0 ) ref -> [rbp-0x110] spill-single-def "argument with side effect"
-; V158 tmp141 [V158,T110] ( 2, 0 ) ref -> r8 "argument with side effect"
+; V156 tmp139 [V156,T107] ( 2, 0 ) ref -> rcx "argument with side effect"
+; V157 tmp140 [V157,T108] ( 2, 0 ) ref -> [rbp-0x110] spill-single-def "argument with side effect"
+; V158 tmp141 [V158,T109] ( 2, 0 ) ref -> r8 "argument with side effect"
; V159 tmp142 [V159,T71] ( 2, 1.14) ref -> rdx "argument with side effect"
-; V160 tmp143 [V160,T111] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
-; V161 tmp144 [V161,T112] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V160 tmp143 [V160,T110] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
+; V161 tmp144 [V161,T111] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
; V162 cse0 [V162,T30] ( 3, 2.09) ref -> [rbp-0x118] spill-single-def "CSE #17: conservative"
; V163 cse1 [V163,T43] ( 2, 1.39) ref -> rdx "CSE #02: conservative"
; V164 cse2 [V164,T45] ( 3, 2.08) int -> [rbp-0x64] spill-single-def "CSE #05: conservative"
@@ -1312,12 +1312,9 @@ G_M55359_IG84: ; bbWeight=0, gcVars=00000008008000000040004108000000 {V09
call [System.RuntimeType:get_GenericParameterAttributes():int:this]
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M55359_IG86
- ;; size=87 bbWeight=0 PerfScore 0.00
+ ;; size=79 bbWeight=0 PerfScore 0.00
G_M55359_IG85: ; bbWeight=0, gcVars=00000008010000000040004108000000 {V09 V10 V102 V119 V122 V165}, gcrefRegs=C0C8 {rbx rsi rdi r14 r15}, byrefRegs=0000 {}, gcvars, byref
; GC ptr vars -{V120}
mov rcx, gword ptr [rbp-0x108]
@@ -1440,7 +1437,7 @@ G_M55359_IG92: ; bbWeight=0, gcVars=00000000000000000040000100000000 {V09
mov rax, gword ptr [rbp-0xB0]
; gcrRegs +[rax]
;; size=127 bbWeight=0 PerfScore 0.00
-G_M55359_IG93: ; bbWeight=0, gcVars=00000800000000000000000100000000 {V09 V21}, gcrefRegs=C1C9 {rax rbx rsi rdi r8 r14 r15}, byrefRegs=0000 {}, gcvars, byref
+G_M55359_IG93: ; bbWeight=0, gcVars=00000400000000000000000100000000 {V09 V21}, gcrefRegs=C1C9 {rax rbx rsi rdi r8 r14 r15}, byrefRegs=0000 {}, gcvars, byref
; GC ptr vars -{V26}
mov rdx, rax
; gcrRegs +[rdx]
@@ -1536,16 +1533,16 @@ G_M55359_IG96: ; bbWeight=0, gcVars=00000000003000000000000100000000 {V09
; gcrRegs +[rax]
jmp SHORT G_M55359_IG95
;; size=9 bbWeight=0 PerfScore 0.00
-G_M55359_IG97: ; bbWeight=0, gcVars=00000800000000000000000100000000 {V09 V21}, gcrefRegs=C1C8 {rbx rsi rdi r8 r14 r15}, byrefRegs=0000 {}, gcvars, byref
+G_M55359_IG97: ; bbWeight=0, gcVars=00000400000000000000000100000000 {V09 V21}, gcrefRegs=C1C8 {rbx rsi rdi r8 r14 r15}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rax] +[r8]
- ; GC ptr vars -{V14 V16 V85} +{V21}
+ ; GC ptr vars -{V14 V16 V85} +{V21 V106}
mov rax, gword ptr [rbp-0xB0]
; gcrRegs +[rax]
jmp G_M55359_IG93
;; size=12 bbWeight=0 PerfScore 0.00
G_M55359_IG98: ; bbWeight=0, gcVars=00000000001000000000000000000000 {V14}, gcrefRegs=C0C8 {rbx rsi rdi r14 r15}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rax r8]
- ; GC ptr vars -{V09 V21} +{V14 V84}
+ ; GC ptr vars -{V09 V21 V106} +{V14 V84}
mov rcx, gword ptr [rbp-0xA0]
; gcrRegs +[rcx]
mov r11, 0xD1FFAB1E ; code for <unknown method>
@@ -1704,7 +1701,7 @@ G_M55359_IG112: ; bbWeight=0.00, funclet epilog, nogc, extend
ret
;; size=5 bbWeight=0.00 PerfScore 0.00
-; Total bytes of code 3556, prolog size 36, PerfScore 228.20, instruction count 753, allocated bytes for code 3556 (MethodHash=54e927c0) for method System.Composition.TypedParts.ContractHelpers:GetImportInfo(System.Type,System.Object[],System.Object):System.Composition.TypedParts.ImportInfo (Tier1)
+; Total bytes of code 3548, prolog size 36, PerfScore 228.20, instruction count 750, allocated bytes for code 3548 (MethodHash=54e927c0) for method System.Composition.TypedParts.ContractHelpers:GetImportInfo(System.Type,System.Object[],System.Object):System.Composition.TypedParts.ImportInfo (Tier1)
; ============================================================
Unwind Info:-8 (-0.21%) : 127933.dasm - Microsoft.Extensions.DependencyInjection.ActivatorUtilities+ConstructorInfoEx:.ctor(System.Reflection.ConstructorInfo):this (Tier1)
@@ -114,7 +114,7 @@
; V102 tmp98 [V102,T126] ( 2, 0 ) int -> rcx
;* V103 tmp99 [V103 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.ModuleHandle>
;* V104 tmp100 [V104 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.RuntimeMethodHandle>
-; V105 tmp101 [V105,T129] ( 2, 0 ) ref -> r13 class-hnd exact "impAppendStmt" <System.Reflection.RuntimeModule>
+; V105 tmp101 [V105,T128] ( 2, 0 ) ref -> r13 class-hnd exact "impAppendStmt" <System.Reflection.RuntimeModule>
;* V106 tmp102 [V106 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V107 tmp103 [V107 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V108 tmp104 [V108 ] ( 2, 59.89) int -> [rbp-0x100] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
@@ -158,7 +158,7 @@
; V146 tmp142 [V146,T11] ( 2, 93.84) long -> r11 "Inline stloc first use temp"
; V147 tmp143 [V147,T22] ( 3, 58.41) long -> r11 "Inline stloc first use temp"
;* V148 tmp144 [V148 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V149 tmp145 [V149,T130] ( 2, 0 ) ref -> rcx class-hnd exact "Inlining Arg" <System.Reflection.RuntimeModule>
+; V149 tmp145 [V149,T129] ( 2, 0 ) ref -> rcx class-hnd exact "Inlining Arg" <System.Reflection.RuntimeModule>
;* V150 tmp146 [V150 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V151 tmp147 [V151 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.Reflection.MetadataToken>
;* V152 tmp148 [V152 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
@@ -189,7 +189,7 @@
; V177 tmp173 [V177 ] ( 2, 0 ) int -> [rbp-0x128] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
;* V178 tmp174 [V178 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V179 tmp175 [V179,T118] ( 3, 0 ) ref -> rbx class-hnd exact "NewObj constructor temp" <<unknown class>>
-; V180 tmp176 [V180,T135] ( 2, 0 ) int -> rbx "Inlining Arg"
+; V180 tmp176 [V180,T134] ( 2, 0 ) int -> rbx "Inlining Arg"
;* V181 tmp177 [V181 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V182 tmp178 [V182 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
; V183 tmp179 [V183,T56] ( 3, 4.88) ref -> rcx class-hnd exact "Inlining Arg" <System.Reflection.RuntimeModule>
@@ -236,7 +236,7 @@
; V224 tmp220 [V224,T109] ( 5, 0 ) ref -> r13 class-hnd "Inline stloc first use temp" <System.RuntimeType>
;* V225 tmp221 [V225,T137] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V226 tmp222 [V226,T110] ( 5, 0 ) ref -> [rbp-0x1B0] class-hnd exact spill-single-def "Inline stloc first use temp" <System.RuntimeType>
-; V227 tmp223 [V227,T128] ( 3, 0 ) int -> rax "Inline stloc first use temp"
+; V227 tmp223 [V227,T135] ( 2, 0 ) int -> rax "Inline stloc first use temp"
;* V228 tmp224 [V228 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V229 tmp225 [V229,T67] ( 2, 4.21) int -> rcx
;* V230 tmp226 [V230 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
@@ -328,8 +328,8 @@
;* V316 tmp312 [V316 ] ( 0, 0 ) long -> zero-ref "field V235.m_asTAddr (fldOffset=0x0)" P-INDEP
;* V317 tmp313 [V317,T84] ( 0, 0 ) long -> zero-ref "field V238.m_asTAddr (fldOffset=0x0)" P-INDEP
; V318 tmp314 [V318,T124] ( 3, 0 ) ref -> rdx "arr expr"
-; V319 tmp315 [V319,T131] ( 2, 0 ) ref -> rdx "argument with side effect"
-; V320 tmp316 [V320,T132] ( 2, 0 ) ref -> r8 "argument with side effect"
+; V319 tmp315 [V319,T130] ( 2, 0 ) ref -> rdx "argument with side effect"
+; V320 tmp316 [V320,T131] ( 2, 0 ) ref -> r8 "argument with side effect"
; V321 tmp317 [V321,T125] ( 3, 0 ) ref -> rax "argument with side effect"
; V322 tmp318 [V322 ] ( 3, 4.88) struct (16) [rbp-0x170] do-not-enreg[XSF] addr-exposed "by-value struct argument" <System.Runtime.CompilerServices.QCallTypeHandle>
; V323 tmp319 [V323 ] ( 3, 4.88) struct (16) [rbp-0x180] do-not-enreg[XSF] addr-exposed "by-value struct argument" <System.Runtime.CompilerServices.QCallTypeHandle>
@@ -337,8 +337,8 @@
;* V325 tmp321 [V325 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
; V326 tmp322 [V326,T39] ( 3, 12.63) ref -> rcx "arr expr"
; V327 tmp323 [V327,T48] ( 2, 8.34) long -> rax "Cast away GC"
-; V328 tmp324 [V328,T133] ( 2, 0 ) ref -> rdx "argument with side effect"
-; V329 tmp325 [V329,T134] ( 2, 0 ) ref -> rdx "argument with side effect"
+; V328 tmp324 [V328,T132] ( 2, 0 ) ref -> rdx "argument with side effect"
+; V329 tmp325 [V329,T133] ( 2, 0 ) ref -> rdx "argument with side effect"
;* V330 tmp326 [V330 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
; V331 cse0 [V331,T42] ( 7, 8.40) ref -> r14 "CSE #09: conservative"
; V332 rat0 [V332,T02] ( 9,178.87) long -> rsi "Widened IV V56"
@@ -1665,12 +1665,9 @@ G_M7458_IG115: ; bbWeight=0, gcrefRegs=E0C0 {rsi rdi r13 r14 r15}, byrefR
call [System.RuntimeType:get_GenericParameterAttributes():int:this]
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M7458_IG117
- ;; size=83 bbWeight=0 PerfScore 0.00
+ ;; size=75 bbWeight=0 PerfScore 0.00
G_M7458_IG116: ; bbWeight=0, gcrefRegs=C0C0 {rsi rdi r14 r15}, byrefRegs=0000 {}, byref
; gcrRegs -[r13]
mov r13, gword ptr [rbp-0x1B0]
@@ -1865,7 +1862,7 @@ G_M7458_IG132: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 3807, prolog size 91, PerfScore 2505.15, instruction count 809, allocated bytes for code 3807 (MethodHash=fa8fe2dd) for method Microsoft.Extensions.DependencyInjection.ActivatorUtilities+ConstructorInfoEx:.ctor(System.Reflection.ConstructorInfo):this (Tier1)
+; Total bytes of code 3799, prolog size 91, PerfScore 2505.15, instruction count 806, allocated bytes for code 3799 (MethodHash=fa8fe2dd) for method Microsoft.Extensions.DependencyInjection.ActivatorUtilities+ConstructorInfoEx:.ctor(System.Reflection.ConstructorInfo):this (Tier1)
; ============================================================
Unwind Info:-16 (-0.17%) : 720998.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:PropertyOverloadResolution(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.PropertySymbol],Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[Microsoft.CodeAnalysis.CSharp.Symbols.PropertySymbol],bool,bool,byref):this (Tier1)
@@ -60,7 +60,7 @@
;* V48 tmp38 [V48 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]>
; V49 tmp39 [V49,T66] ( 3, 4 ) ref -> [rbp-0x8C8] class-hnd spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[Microsoft.CodeAnalysis.CSharp.Symbols.PropertySymbol]>
; V50 tmp40 [V50,T17] ( 16, 10.96) ref -> [rbp-0x8D0] class-hnd spill-single-def "Inline stloc first use temp" <<unknown class>>
-; V51 tmp41 [V51,T00] ( 24, 53.78) ushort -> [rbp-0x4C] spill-single-def "Inlining Arg"
+; V51 tmp41 [V51,T00] ( 23, 51.92) ushort -> [rbp-0x4C] spill-single-def "Inlining Arg"
; V52 tmp42 [V52,T102] ( 3, 2.00) int -> registers
; V53 tmp43 [V53,T43] ( 5, 5.17) ubyte -> [rbp-0x50] spill-single-def "Inline stloc first use temp"
;* V54 tmp44 [V54,T105] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.OverloadResolution>
@@ -2448,12 +2448,7 @@ G_M34137_IG188: ; bbWeight=1.00, gcrefRegs=4048 {rbx rsi r14}, byrefRegs=
je SHORT G_M34137_IG190
;; size=82 bbWeight=1.00 PerfScore 13.00
G_M34137_IG189: ; bbWeight=0.93, gcrefRegs=50C8 {rbx rsi rdi r12 r14}, byrefRegs=8000 {r15}, byref
- mov r10d, dword ptr [rbp-0x4C]
- mov r8d, r10d
- and r8d, 64
- mov edx, r10d
- and edx, 512
- or r8d, edx
+ test dword ptr [rbp-0x4C], 576
jne G_M34137_IG272
mov r8, r15
; byrRegs +[r8]
@@ -2465,7 +2460,7 @@ G_M34137_IG189: ; bbWeight=0.93, gcrefRegs=50C8 {rbx rsi rdi r12 r14}, by
; gcrRegs -[rdx]
; byrRegs -[r8]
; gcr arg pop 0
- ;; size=62 bbWeight=0.93 PerfScore 7.43
+ ;; size=46 bbWeight=0.93 PerfScore 6.27
G_M34137_IG190: ; bbWeight=1.00, gcrefRegs=50C8 {rbx rsi rdi r12 r14}, byrefRegs=8000 {r15}, byref
xor rcx, rcx
; gcrRegs +[rcx]
@@ -3700,7 +3695,7 @@ G_M34137_IG277: ; bbWeight=0, gcVars=000000000000000000000000000000000000
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 9316, prolog size 97, PerfScore 1169.00, instruction count 1758, allocated bytes for code 9316 (MethodHash=f0237aa6) for method Microsoft.CodeAnalysis.CSharp.OverloadResolution:PropertyOverloadResolution(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.PropertySymbol],Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[Microsoft.CodeAnalysis.CSharp.Symbols.PropertySymbol],bool,bool,byref):this (Tier1)
+; Total bytes of code 9300, prolog size 97, PerfScore 1167.84, instruction count 1753, allocated bytes for code 9300 (MethodHash=f0237aa6) for method Microsoft.CodeAnalysis.CSharp.OverloadResolution:PropertyOverloadResolution(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.PropertySymbol],Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[Microsoft.CodeAnalysis.CSharp.Symbols.PropertySymbol],bool,bool,byref):this (Tier1)
; ============================================================
Unwind Info:-9 (-0.16%) : 475498.dasm - System.Xml.XsdValidatingReader:.ctor(System.Xml.XmlReader,System.Xml.XmlResolver,System.Xml.XmlReaderSettings,System.Xml.Schema.XmlSchemaObject):this (Tier1)
@@ -15,40 +15,40 @@
; V03 arg3 [V03,T10] ( 9, 7.37) ref -> rdi class-hnd single-def <System.Xml.XmlReaderSettings>
; V04 arg4 [V04,T184] ( 2, 1.00) ref -> r14 class-hnd single-def <System.Xml.Schema.XmlSchemaObject>
; V05 OutArgs [V05 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <UNNAMED>
-; V06 tmp1 [V06,T36] ( 3, 6 ) ref -> rbp class-hnd exact single-def "NewObj constructor temp" <System.Collections.ArrayList>
+; V06 tmp1 [V06,T35] ( 3, 6 ) ref -> rbp class-hnd exact single-def "NewObj constructor temp" <System.Collections.ArrayList>
;* V07 tmp2 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewArr temp" <System.Xml.AttributePSVIInfo[]>
; V08 tmp3 [V08,T11] ( 4, 8 ) ref -> rbp class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
; V09 tmp4 [V09,T03] ( 8, 16 ) ref -> rax class-hnd exact single-def "NewObj constructor temp" <System.Xml.Schema.XmlSchemaInfo>
; V10 tmp5 [V10,T206] ( 3, 0 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.Xml.XmlNamespaceManager>
; V11 tmp6 [V11,T136] ( 3, 2 ) ref -> rdx "guarded devirt return temp"
-; V12 tmp7 [V12,T33] ( 5, 6 ) ref -> rcx class-hnd single-def "guarded devirt arg temp" <System.Xml.XmlReader>
+; V12 tmp7 [V12,T32] ( 5, 6 ) ref -> rcx class-hnd single-def "guarded devirt arg temp" <System.Xml.XmlReader>
;* V13 tmp8 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Xml.XmlTextReaderImpl>
; V14 tmp9 [V14,T137] ( 3, 2 ) ref -> rdx "guarded devirt return temp"
-; V15 tmp10 [V15,T34] ( 5, 6 ) ref -> rbp class-hnd single-def "guarded devirt arg temp" <System.Xml.XmlNameTable>
+; V15 tmp10 [V15,T33] ( 5, 6 ) ref -> rbp class-hnd single-def "guarded devirt arg temp" <System.Xml.XmlNameTable>
; V16 tmp11 [V16,T60] ( 9, 4.90) ref -> rbp class-hnd exact single-def "guarded devirt this exact temp" <System.Xml.NameTable>
; V17 tmp12 [V17,T138] ( 3, 2 ) ref -> rdx "guarded devirt return temp"
-; V18 tmp13 [V18,T26] ( 6, 6 ) ref -> rbp class-hnd "guarded devirt arg temp" <System.Xml.XmlNameTable>
+; V18 tmp13 [V18,T25] ( 6, 6 ) ref -> rbp class-hnd "guarded devirt arg temp" <System.Xml.XmlNameTable>
; V19 tmp14 [V19,T61] ( 9, 4.90) ref -> rbp class-hnd exact single-def "guarded devirt this exact temp" <System.Xml.NameTable>
; V20 tmp15 [V20,T139] ( 3, 2.00) ref -> rdx "guarded devirt return temp"
-; V21 tmp16 [V21,T27] ( 6, 6 ) ref -> rbp class-hnd "guarded devirt arg temp" <System.Xml.XmlNameTable>
-; V22 tmp17 [V22,T15] ( 9, 7.12) ref -> rbp class-hnd exact single-def "guarded devirt this exact temp" <System.Xml.NameTable>
+; V21 tmp16 [V21,T26] ( 6, 6 ) ref -> rbp class-hnd "guarded devirt arg temp" <System.Xml.XmlNameTable>
+; V22 tmp17 [V22,T14] ( 9, 7.12) ref -> rbp class-hnd exact single-def "guarded devirt this exact temp" <System.Xml.NameTable>
; V23 tmp18 [V23,T140] ( 3, 2.00) ref -> rdx "guarded devirt return temp"
-; V24 tmp19 [V24,T28] ( 6, 6.00) ref -> rbp class-hnd "guarded devirt arg temp" <System.Xml.XmlNameTable>
+; V24 tmp19 [V24,T27] ( 6, 6.00) ref -> rbp class-hnd "guarded devirt arg temp" <System.Xml.XmlNameTable>
; V25 tmp20 [V25,T62] ( 9, 4.90) ref -> rbp class-hnd exact single-def "guarded devirt this exact temp" <System.Xml.NameTable>
; V26 tmp21 [V26,T141] ( 3, 2.00) ref -> rdx "guarded devirt return temp"
-; V27 tmp22 [V27,T29] ( 6, 6.00) ref -> rbp class-hnd "guarded devirt arg temp" <System.Xml.XmlNameTable>
+; V27 tmp22 [V27,T28] ( 6, 6.00) ref -> rbp class-hnd "guarded devirt arg temp" <System.Xml.XmlNameTable>
; V28 tmp23 [V28,T63] ( 9, 4.90) ref -> rbp class-hnd exact single-def "guarded devirt this exact temp" <System.Xml.NameTable>
; V29 tmp24 [V29,T142] ( 3, 2.00) ref -> rdx "guarded devirt return temp"
-; V30 tmp25 [V30,T30] ( 6, 6.00) ref -> rbp class-hnd "guarded devirt arg temp" <System.Xml.XmlNameTable>
+; V30 tmp25 [V30,T29] ( 6, 6.00) ref -> rbp class-hnd "guarded devirt arg temp" <System.Xml.XmlNameTable>
; V31 tmp26 [V31,T64] ( 9, 4.90) ref -> rbp class-hnd exact single-def "guarded devirt this exact temp" <System.Xml.NameTable>
; V32 tmp27 [V32,T143] ( 3, 2.00) ref -> rdx "guarded devirt return temp"
-; V33 tmp28 [V33,T31] ( 6, 6.00) ref -> rbp class-hnd "guarded devirt arg temp" <System.Xml.XmlNameTable>
+; V33 tmp28 [V33,T30] ( 6, 6.00) ref -> rbp class-hnd "guarded devirt arg temp" <System.Xml.XmlNameTable>
; V34 tmp29 [V34,T65] ( 10, 5.28) ref -> rbp class-hnd exact single-def "guarded devirt this exact temp" <System.Xml.NameTable>
; V35 tmp30 [V35,T133] ( 4, 2.00) ref -> rdx "guarded devirt return temp"
-; V36 tmp31 [V36,T32] ( 6, 6.00) ref -> rbp class-hnd "guarded devirt arg temp" <System.Xml.XmlNameTable>
+; V36 tmp31 [V36,T31] ( 6, 6.00) ref -> rbp class-hnd "guarded devirt arg temp" <System.Xml.XmlNameTable>
; V37 tmp32 [V37,T66] ( 10, 5.28) ref -> rbp class-hnd exact single-def "guarded devirt this exact temp" <System.Xml.NameTable>
; V38 tmp33 [V38,T93] ( 5, 3.95) int -> r13 "Inline stloc first use temp"
-; V39 tmp34 [V39,T20] ( 8, 6.35) ref -> rcx class-hnd "Inline stloc first use temp" <System.Xml.NameTable+Entry>
+; V39 tmp34 [V39,T19] ( 8, 6.35) ref -> rcx class-hnd "Inline stloc first use temp" <System.Xml.NameTable+Entry>
; V40 tmp35 [V40,T68] ( 5, 4.97) ref -> rax "spilling varStr"
; V41 tmp36 [V41,T185] ( 2, 0.83) int -> rax "spilling unroll qmark"
;* V42 tmp37 [V42 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[char]>
@@ -65,7 +65,7 @@
; V53 tmp48 [V53,T168] ( 3, 1.14) int -> rcx "Inline stloc first use temp"
; V54 tmp49 [V54,T159] ( 2, 1.52) ref -> rdx class-hnd exact single-def "Inlining Arg" <System.Xml.NameTable+Entry>
; V55 tmp50 [V55,T94] ( 5, 3.95) int -> r13 "Inline stloc first use temp"
-; V56 tmp51 [V56,T21] ( 8, 6.35) ref -> rcx class-hnd "Inline stloc first use temp" <System.Xml.NameTable+Entry>
+; V56 tmp51 [V56,T20] ( 8, 6.35) ref -> rcx class-hnd "Inline stloc first use temp" <System.Xml.NameTable+Entry>
; V57 tmp52 [V57,T69] ( 5, 4.97) ref -> rax "spilling varStr"
; V58 tmp53 [V58,T186] ( 2, 0.83) int -> rax "spilling unroll qmark"
;* V59 tmp54 [V59 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[char]>
@@ -81,7 +81,7 @@
;* V69 tmp64 [V69 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Xml.NameTable+Entry>
; V70 tmp65 [V70,T170] ( 3, 1.14) int -> rcx "Inline stloc first use temp"
; V71 tmp66 [V71,T160] ( 2, 1.52) ref -> rdx class-hnd exact single-def "Inlining Arg" <System.Xml.NameTable+Entry>
-; V72 tmp67 [V72,T25] ( 5, 6.23) int -> r15 "Inline stloc first use temp"
+; V72 tmp67 [V72,T24] ( 5, 6.23) int -> r15 "Inline stloc first use temp"
; V73 tmp68 [V73,T05] ( 8, 13.76) ref -> r13 class-hnd "Inline stloc first use temp" <System.Xml.NameTable+Entry>
;* V74 tmp69 [V74 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[char]>
;* V75 tmp70 [V75 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[char]>
@@ -137,7 +137,7 @@
; V125 tmp120 [V125,T174] ( 3, 1.14) int -> rcx "Inline stloc first use temp"
; V126 tmp121 [V126,T162] ( 2, 1.52) ref -> rdx class-hnd exact single-def "Inlining Arg" <System.Xml.NameTable+Entry>
; V127 tmp122 [V127,T97] ( 5, 3.95) int -> r13 "Inline stloc first use temp"
-; V128 tmp123 [V128,T22] ( 8, 6.35) ref -> rcx class-hnd "Inline stloc first use temp" <System.Xml.NameTable+Entry>
+; V128 tmp123 [V128,T21] ( 8, 6.35) ref -> rcx class-hnd "Inline stloc first use temp" <System.Xml.NameTable+Entry>
; V129 tmp124 [V129,T71] ( 5, 4.97) ref -> rax "spilling varStr"
; V130 tmp125 [V130,T187] ( 2, 0.83) int -> rax "spilling unroll qmark"
;* V131 tmp126 [V131 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[char]>
@@ -154,7 +154,7 @@
; V142 tmp137 [V142,T176] ( 3, 1.14) int -> rcx "Inline stloc first use temp"
; V143 tmp138 [V143,T163] ( 2, 1.52) ref -> rdx class-hnd exact single-def "Inlining Arg" <System.Xml.NameTable+Entry>
; V144 tmp139 [V144,T98] ( 5, 3.95) int -> r13 "Inline stloc first use temp"
-; V145 tmp140 [V145,T23] ( 8, 6.35) ref -> rcx class-hnd "Inline stloc first use temp" <System.Xml.NameTable+Entry>
+; V145 tmp140 [V145,T22] ( 8, 6.35) ref -> rcx class-hnd "Inline stloc first use temp" <System.Xml.NameTable+Entry>
; V146 tmp141 [V146,T72] ( 5, 4.97) ref -> rax "spilling varStr"
; V147 tmp142 [V147,T188] ( 2, 0.83) int -> rax "spilling unroll qmark"
;* V148 tmp143 [V148 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[char]>
@@ -171,7 +171,7 @@
; V159 tmp154 [V159,T177] ( 3, 1.14) int -> rcx "Inline stloc first use temp"
; V160 tmp155 [V160,T164] ( 2, 1.52) ref -> rdx class-hnd exact single-def "Inlining Arg" <System.Xml.NameTable+Entry>
; V161 tmp156 [V161,T99] ( 5, 3.95) int -> r13 "Inline stloc first use temp"
-; V162 tmp157 [V162,T24] ( 8, 6.35) ref -> rcx class-hnd "Inline stloc first use temp" <System.Xml.NameTable+Entry>
+; V162 tmp157 [V162,T23] ( 8, 6.35) ref -> rcx class-hnd "Inline stloc first use temp" <System.Xml.NameTable+Entry>
; V163 tmp158 [V163,T73] ( 5, 4.97) ref -> rax "spilling varStr"
;* V164 tmp159 [V164,T197] ( 0, 0 ) int -> zero-ref "spilling unroll qmark"
;* V165 tmp160 [V165 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[char]>
@@ -187,13 +187,13 @@
;* V175 tmp170 [V175 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Xml.NameTable+Entry>
; V176 tmp171 [V176,T178] ( 3, 1.14) int -> rcx "Inline stloc first use temp"
; V177 tmp172 [V177,T165] ( 2, 1.52) ref -> rdx class-hnd exact single-def "Inlining Arg" <System.Xml.NameTable+Entry>
-; V178 tmp173 [V178,T16] ( 4, 7.12) ref -> rbp class-hnd single-def "impAppendStmt" <System.Xml.XmlNameTable>
+; V178 tmp173 [V178,T15] ( 4, 7.12) ref -> rbp class-hnd single-def "impAppendStmt" <System.Xml.XmlNameTable>
;* V179 tmp174 [V179 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "impAppendStmt" <System.Xml.Schema.XmlSchemaSet>
-; V180 tmp175 [V180,T37] ( 3, 6.00) ref -> r15 class-hnd single-def "impAppendStmt" <System.Xml.IXmlNamespaceResolver>
+; V180 tmp175 [V180,T36] ( 3, 6.00) ref -> r15 class-hnd single-def "impAppendStmt" <System.Xml.IXmlNamespaceResolver>
; V181 tmp176 [V181,T02] ( 15, 23.58) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <System.Xml.Schema.XmlSchemaValidator>
; V182 tmp177 [V182,T12] ( 4, 8.00) ref -> rbp class-hnd exact single-def "impAppendStmt" <System.Xml.Schema.XmlSchemaValidator>
-; V183 tmp178 [V183,T38] ( 3, 6.00) ref -> rbp class-hnd exact single-def "impAppendStmt" <System.Xml.Schema.XmlSchemaValidator>
-; V184 tmp179 [V184,T39] ( 3, 6.00) ref -> rbp class-hnd exact single-def "impAppendStmt" <System.Xml.Schema.XmlSchemaValidator>
+; V183 tmp178 [V183,T37] ( 3, 6.00) ref -> rbp class-hnd exact single-def "impAppendStmt" <System.Xml.Schema.XmlSchemaValidator>
+; V184 tmp179 [V184,T38] ( 3, 6.00) ref -> rbp class-hnd exact single-def "impAppendStmt" <System.Xml.Schema.XmlSchemaValidator>
;* V185 tmp180 [V185 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Xml.XmlReaderSettings>
; V186 tmp181 [V186,T144] ( 3, 2.00) ref -> rcx "guarded devirt return temp"
;* V187 tmp182 [V187 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Xml.XmlTextReaderImpl>
@@ -204,9 +204,9 @@
; V192 tmp187 [V192,T158] ( 4, 1.82) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.Xml.Schema.XmlSchemaSet>
;* V193 tmp188 [V193 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Xml.Schema.XmlSchemaSet>
; V194 tmp189 [V194,T166] ( 3, 1.36) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.Xml.NameTable>
-; V195 tmp190 [V195,T13] ( 4, 8.00) int -> [rsp+0x6C] spill-single-def "Inlining Arg"
+; V195 tmp190 [V195,T48] ( 3, 6.00) int -> [rsp+0x6C] spill-single-def "Inlining Arg"
; V196 tmp191 [V196,T105] ( 3, 3.35) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.Xml.Schema.XmlSchemaSet>
-; V197 tmp192 [V197,T14] ( 9, 7.81) ref -> rbp class-hnd single-def "impAppendStmt" <System.Xml.Schema.XmlSchemaSet>
+; V197 tmp192 [V197,T13] ( 9, 7.81) ref -> rbp class-hnd single-def "impAppendStmt" <System.Xml.Schema.XmlSchemaSet>
;* V198 tmp193 [V198 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Xml.Schema.XmlSchemaSet>
; V199 tmp194 [V199,T130] ( 2, 2.23) ref -> rbp class-hnd single-def "impAppendStmt" <System.Xml.Schema.XmlSchemaSet>
; V200 tmp195 [V200,T08] ( 8, 8.93) ref -> rbp class-hnd exact single-def "NewObj constructor temp" <System.Collections.Hashtable>
@@ -264,8 +264,8 @@
; V252 tmp247 [V252,T88] ( 3, 4.00) ref -> rdx class-hnd exact single-def "Inlining Arg" <System.Xml.Schema.ValidationEventHandler>
; V253 tmp248 [V253,T135] ( 4, 2.00) ref -> rdx class-hnd "Inline return value spill temp" <System.Delegate>
; V254 tmp249 [V254,T89] ( 3, 4.00) ref -> rcx class-hnd exact single-def "Inlining Arg" <System.Xml.Schema.ValidationEventHandler>
-; V255 tmp250 [V255,T40] ( 3, 6.00) ref -> rdx class-hnd single-def "Inlining Arg" <System.Xml.IXmlLineInfo>
-; V256 tmp251 [V256,T35] ( 4, 6.00) ref -> rbp class-hnd exact single-def "Inlining Arg" <System.Xml.Schema.XmlSchemaValidator>
+; V255 tmp250 [V255,T39] ( 3, 6.00) ref -> rdx class-hnd single-def "Inlining Arg" <System.Xml.IXmlLineInfo>
+; V256 tmp251 [V256,T34] ( 4, 6.00) ref -> rbp class-hnd exact single-def "Inlining Arg" <System.Xml.Schema.XmlSchemaValidator>
;* V257 tmp252 [V257,T199] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V258 tmp253 [V258,T59] ( 3, 5.72) ref -> rcx class-hnd exact single-def "Inlining Arg" <System.Xml.Schema.XmlSchemaValidator>
;* V259 tmp254 [V259 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Xml.Schema.XmlSchemaValidator>
@@ -351,35 +351,35 @@
;* V339 tmp334 [V339 ] ( 0, 0 ) int -> zero-ref "field V170._length (fldOffset=0x8)" P-INDEP
;* V340 tmp335 [V340 ] ( 0, 0 ) byref -> zero-ref single-def "field V171._reference (fldOffset=0x0)" P-INDEP
;* V341 tmp336 [V341 ] ( 0, 0 ) int -> zero-ref "field V171._length (fldOffset=0x8)" P-INDEP
-; V342 tmp337 [V342,T41] ( 3, 6 ) ref -> rcx single-def "arr expr"
+; V342 tmp337 [V342,T40] ( 3, 6 ) ref -> rcx single-def "arr expr"
; V343 tmp338 [V343,T49] ( 3, 6 ) int -> rax "index expr"
;* V344 tmp339 [V344,T189] ( 0, 0 ) ref -> zero-ref single-def "arr expr"
; V345 tmp340 [V345,T119] ( 3, 2.28) ref -> rcx single-def "arr expr"
-; V346 tmp341 [V346,T42] ( 3, 6 ) ref -> rcx single-def "arr expr"
+; V346 tmp341 [V346,T41] ( 3, 6 ) ref -> rcx single-def "arr expr"
; V347 tmp342 [V347,T50] ( 3, 6 ) int -> rax "index expr"
;* V348 tmp343 [V348,T190] ( 0, 0 ) ref -> zero-ref single-def "arr expr"
; V349 tmp344 [V349,T120] ( 3, 2.28) ref -> rcx single-def "arr expr"
-; V350 tmp345 [V350,T43] ( 3, 6 ) ref -> r8 single-def "arr expr"
+; V350 tmp345 [V350,T42] ( 3, 6 ) ref -> r8 single-def "arr expr"
; V351 tmp346 [V351,T51] ( 3, 6 ) int -> rdx "index expr"
; V352 tmp347 [V352,T74] ( 3, 4.93) ref -> rcx single-def "arr expr"
; V353 tmp348 [V353,T75] ( 3, 4.93) ref -> r15 single-def "arr expr"
-; V354 tmp349 [V354,T44] ( 3, 6.00) ref -> rcx single-def "arr expr"
+; V354 tmp349 [V354,T43] ( 3, 6.00) ref -> rcx single-def "arr expr"
; V355 tmp350 [V355,T52] ( 3, 6.00) int -> rax "index expr"
;* V356 tmp351 [V356,T191] ( 0, 0 ) ref -> zero-ref single-def "arr expr"
; V357 tmp352 [V357,T121] ( 3, 2.28) ref -> rcx single-def "arr expr"
-; V358 tmp353 [V358,T45] ( 3, 6.00) ref -> rcx single-def "arr expr"
+; V358 tmp353 [V358,T44] ( 3, 6.00) ref -> rcx single-def "arr expr"
; V359 tmp354 [V359,T53] ( 3, 6.00) int -> rax "index expr"
;* V360 tmp355 [V360,T192] ( 0, 0 ) ref -> zero-ref single-def "arr expr"
; V361 tmp356 [V361,T122] ( 3, 2.28) ref -> rcx single-def "arr expr"
-; V362 tmp357 [V362,T46] ( 3, 6.00) ref -> rcx single-def "arr expr"
+; V362 tmp357 [V362,T45] ( 3, 6.00) ref -> rcx single-def "arr expr"
; V363 tmp358 [V363,T54] ( 3, 6.00) int -> rax "index expr"
;* V364 tmp359 [V364,T193] ( 0, 0 ) ref -> zero-ref single-def "arr expr"
; V365 tmp360 [V365,T123] ( 3, 2.28) ref -> rcx single-def "arr expr"
-; V366 tmp361 [V366,T47] ( 3, 6.00) ref -> rcx single-def "arr expr"
+; V366 tmp361 [V366,T46] ( 3, 6.00) ref -> rcx single-def "arr expr"
; V367 tmp362 [V367,T55] ( 3, 6.00) int -> rax "index expr"
; V368 tmp363 [V368,T124] ( 3, 2.28) ref -> rcx single-def "arr expr"
; V369 tmp364 [V369,T125] ( 3, 2.28) ref -> rcx single-def "arr expr"
-; V370 tmp365 [V370,T48] ( 3, 6.00) ref -> rcx single-def "arr expr"
+; V370 tmp365 [V370,T47] ( 3, 6.00) ref -> rcx single-def "arr expr"
; V371 tmp366 [V371,T56] ( 3, 6.00) int -> rax "index expr"
; V372 tmp367 [V372,T126] ( 3, 2.28) ref -> rcx single-def "arr expr"
; V373 tmp368 [V373,T127] ( 3, 2.28) ref -> rcx single-def "arr expr"
@@ -398,13 +398,13 @@
; V386 cse6 [V386,T117] ( 3, 2.28) ref -> rdx "CSE #32: conservative"
; V387 cse7 [V387,T118] ( 3, 2.28) ref -> rdx "CSE #41: conservative"
; V388 cse8 [V388,T07] ( 11, 10.23) long -> r15 multi-def "CSE #11: moderate"
-; V389 rat0 [V389,T17] ( 5, 7 ) ref -> rdx "replacement local"
-; V390 rat1 [V390,T18] ( 5, 7 ) ref -> rdx "replacement local"
+; V389 rat0 [V389,T16] ( 5, 7 ) ref -> rdx "replacement local"
+; V390 rat1 [V390,T17] ( 5, 7 ) ref -> rdx "replacement local"
; V391 rat2 [V391,T101] ( 4, 3.91) ref -> rdx "replacement local"
; V392 rat3 [V392,T182] ( 3, 1.12) long -> rax "CSE for expectedClsNode"
; V393 rat4 [V393,T102] ( 4, 3.91) ref -> rax "replacement local"
; V394 rat5 [V394,T183] ( 3, 1.12) long -> rcx "CSE for expectedClsNode"
-; V395 rat6 [V395,T19] ( 4, 7.00) ref -> rax "replacement local"
+; V395 rat6 [V395,T18] ( 4, 7.00) ref -> rax "replacement local"
; V396 rat7 [V396,T146] ( 3, 2.00) long -> rcx "CSE for expectedClsNode"
; V397 rat8 [V397,T201] ( 3, 1.24) simd32 -> mm0 "ReplaceWithLclVar is creating a new local variable"
; V398 rat9 [V398,T202] ( 3, 1.24) simd32 -> mm0 "ReplaceWithLclVar is creating a new local variable"
@@ -1189,12 +1189,9 @@ G_M47864_IG58: ; bbWeight=1.00, gcrefRegs=60E8 {rbx rbp rsi rdi r13 r14},
; byrRegs -[rcx]
mov r15d, dword ptr [rsp+0x6C]
mov dword ptr [r12+0xF0], r15d
- mov ecx, r15d
- and ecx, 1
- and r15d, 2
- or ecx, r15d
+ test r15b, 3
je G_M47864_IG120
- ;; size=135 bbWeight=1.00 PerfScore 18.50
+ ;; size=126 bbWeight=1.00 PerfScore 17.75
G_M47864_IG59: ; bbWeight=0.56, gcrefRegs=70E8 {rbx rbp rsi rdi r12 r13 r14}, byrefRegs=0000 {}, byref
mov rcx, 0xD1FFAB1E ; System.Xml.Schema.XmlSchemaSet
call CORINFO_HELP_NEWSFAST
@@ -2759,7 +2756,7 @@ RWD192 dd 40400000h ; 3
RWD196 dd 4F000000h ; 2.14748e+09
-; Total bytes of code 5643, prolog size 39, PerfScore 701.10, instruction count 1176, allocated bytes for code 5643 (MethodHash=525e4507) for method System.Xml.XsdValidatingReader:.ctor(System.Xml.XmlReader,System.Xml.XmlResolver,System.Xml.XmlReaderSettings,System.Xml.Schema.XmlSchemaObject):this (Tier1)
+; Total bytes of code 5634, prolog size 39, PerfScore 700.35, instruction count 1173, allocated bytes for code 5634 (MethodHash=525e4507) for method System.Xml.XsdValidatingReader:.ctor(System.Xml.XmlReader,System.Xml.XmlResolver,System.Xml.XmlReaderSettings,System.Xml.Schema.XmlSchemaObject):this (Tier1)
; ============================================================
Unwind Info:-20 (-0.14%) : 715613.dasm - Microsoft.CodeAnalysis.CSharp.Binder:ResolveMethodGroup(Microsoft.CodeAnalysis.CSharp.BoundMethodGroup,Microsoft.CodeAnalysis.SyntaxNode,System.String,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,byref,ushort,bool,byte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,byref):Microsoft.CodeAnalysis.CSharp.MethodGroupResolution:this (Tier1)
@@ -51,7 +51,7 @@
; V39 tmp25 [V39,T03] ( 19, 25.97) ref -> [rbp-0xD88] class-hnd exact spill-single-def "impAppendStmt" <Microsoft.CodeAnalysis.CSharp.OverloadResolution>
; V40 tmp26 [V40,T07] ( 9, 18.44) ref -> [rbp-0xD90] class-hnd exact spill-single-def "impAppendStmt" <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol]>
; V41 tmp27 [V41,T113] ( 6, 3.18) ref -> [rbp-0xD98] class-hnd exact spill-single-def "impAppendStmt" <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]>
-; V42 tmp28 [V42,T00] ( 27, 48.93) ushort -> [rbp-0x168] "Inlining Arg"
+; V42 tmp28 [V42,T00] ( 26, 47.22) ushort -> [rbp-0x168] "Inlining Arg"
;* V43 tmp29 [V43 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <Microsoft.CodeAnalysis.CSharp.AnalyzedArguments>
; V44 tmp30 [V44 ] ( 8, 14.68) struct (56) [rbp-0x1A0] do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.MethodGroupResolution>
; V45 tmp31 [V45 ] ( 8, 0 ) struct (56) [rbp-0x1D8] do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.MethodGroupResolution>
@@ -3518,13 +3518,7 @@ G_M6737_IG256: ; bbWeight=0.92, gcrefRegs=0048 {rbx rsi}, byrefRegs=4000
je SHORT G_M6737_IG258
;; size=85 bbWeight=0.92 PerfScore 11.93
G_M6737_IG257: ; bbWeight=0.85, gcrefRegs=10C8 {rbx rsi rdi r12}, byrefRegs=4000 {r14}, byref
- mov eax, dword ptr [rbp-0x168]
- mov r8d, eax
- and r8d, 64
- mov dword ptr [rbp-0x168], eax
- mov edx, eax
- and edx, 512
- or r8d, edx
+ test dword ptr [rbp-0x168], 576
jne G_M6737_IG395
mov r8, r14
; byrRegs +[r8]
@@ -3536,7 +3530,7 @@ G_M6737_IG257: ; bbWeight=0.85, gcrefRegs=10C8 {rbx rsi rdi r12}, byrefRe
; gcrRegs -[rdx]
; byrRegs -[r8]
; gcr arg pop 0
- ;; size=69 bbWeight=0.85 PerfScore 7.67
+ ;; size=49 bbWeight=0.85 PerfScore 5.75
G_M6737_IG258: ; bbWeight=0.92, gcrefRegs=10C8 {rbx rsi rdi r12}, byrefRegs=4000 {r14}, byref
xor rcx, rcx
; gcrRegs +[rcx]
@@ -5681,7 +5675,7 @@ G_M6737_IG407: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 14029, prolog size 112, PerfScore 1413.16, instruction count 2679, allocated bytes for code 14029 (MethodHash=a7cde5ae) for method Microsoft.CodeAnalysis.CSharp.Binder:ResolveMethodGroup(Microsoft.CodeAnalysis.CSharp.BoundMethodGroup,Microsoft.CodeAnalysis.SyntaxNode,System.String,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,byref,ushort,bool,byte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,byref):Microsoft.CodeAnalysis.CSharp.MethodGroupResolution:this (Tier1)
+; Total bytes of code 14009, prolog size 112, PerfScore 1411.24, instruction count 2673, allocated bytes for code 14009 (MethodHash=a7cde5ae) for method Microsoft.CodeAnalysis.CSharp.Binder:ResolveMethodGroup(Microsoft.CodeAnalysis.CSharp.BoundMethodGroup,Microsoft.CodeAnalysis.SyntaxNode,System.String,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,byref,ushort,bool,byte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,byref):Microsoft.CodeAnalysis.CSharp.MethodGroupResolution:this (Tier1)
; ============================================================
Unwind Info:-8 (-0.11%) : 650526.dasm - System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver:CreatePropertyInfo(System.Text.Json.Serialization.Metadata.JsonTypeInfo,System.Type,System.Reflection.MemberInfo,System.Text.Json.JsonNamingPolicy,System.Reflection.NullabilityInfoContext,System.Nullable`1[int],System.Text.Json.JsonSerializerOptions,bool,bool):System.Text.Json.Serialization.Metadata.JsonPropertyInfo (Tier1)
@@ -28,7 +28,7 @@
;* V16 tmp3 [V16 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Nullable`1[int]>
;* V17 tmp4 [V17 ] ( 0, 0 ) struct ( 8) zero-ref <System.Nullable`1[int]>
; V18 tmp5 [V18,T00] ( 32, 47.07) ref -> r12 class-hnd single-def "dup spill" <System.Text.Json.Serialization.Metadata.JsonPropertyInfo>
-; V19 tmp6 [V19,T234] ( 2, 0.00) ref -> rdx class-hnd single-def "impSpillSpecialSideEff" <System.Object>
+; V19 tmp6 [V19,T233] ( 2, 0.00) ref -> rdx class-hnd single-def "impSpillSpecialSideEff" <System.Object>
;* V20 tmp7 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd "dup spill" <<unknown class>>
;* V21 tmp8 [V21 ] ( 0, 0 ) ref -> zero-ref
; V22 tmp9 [V22,T230] ( 3, 0.00) int -> rax
@@ -59,7 +59,7 @@
; V47 tmp34 [V47,T222] ( 6, 0 ) ref -> [rbp-0x110] class-hnd "Inline stloc first use temp" <System.RuntimeType>
;* V48 tmp35 [V48,T245] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V49 tmp36 [V49,T223] ( 5, 0 ) ref -> [rbp-0x118] class-hnd exact spill-single-def "Inline stloc first use temp" <System.RuntimeType>
-; V50 tmp37 [V50,T231] ( 3, 0 ) int -> rax "Inline stloc first use temp"
+; V50 tmp37 [V50,T239] ( 2, 0 ) int -> rax "Inline stloc first use temp"
;* V51 tmp38 [V51 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V52 tmp39 [V52,T116] ( 2, 2 ) int -> rcx
;* V53 tmp40 [V53 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
@@ -451,8 +451,8 @@
; V439 tmp426 [V439,T217] ( 2, 0.00) int -> rdx "field V16.value (fldOffset=0x4)" P-INDEP
; V440 tmp427 [V440,T113] ( 3, 2 ) ubyte -> rax "field V17.hasValue (fldOffset=0x0)" P-INDEP
; V441 tmp428 [V441,T114] ( 3, 2 ) int -> rdx "field V17.value (fldOffset=0x4)" P-INDEP
-; V442 tmp429 [V442,T232] ( 3, 0 ) ubyte -> rcx "field V24.hasValue (fldOffset=0x0)" P-INDEP
-; V443 tmp430 [V443,T233] ( 3, 0 ) int -> rax "field V24.value (fldOffset=0x4)" P-INDEP
+; V442 tmp429 [V442,T231] ( 3, 0 ) ubyte -> rcx "field V24.hasValue (fldOffset=0x0)" P-INDEP
+; V443 tmp430 [V443,T232] ( 3, 0 ) int -> rax "field V24.value (fldOffset=0x4)" P-INDEP
;* V444 tmp431 [V444 ] ( 0, 0 ) ubyte -> zero-ref "field V25.hasValue (fldOffset=0x0)" P-INDEP
;* V445 tmp432 [V445 ] ( 0, 0 ) int -> zero-ref "field V25.value (fldOffset=0x4)" P-INDEP
;* V446 tmp433 [V446 ] ( 0, 0 ) long -> zero-ref "field V51.m_asTAddr (fldOffset=0x0)" P-INDEP
@@ -511,13 +511,13 @@
; V499 tmp486 [V499,T136] ( 2, 1.88) ref -> rdx single-def "argument with side effect"
; V500 tmp487 [V500,T204] ( 2, 0.19) ref -> rdx single-def "argument with side effect"
; V501 tmp488 [V501,T207] ( 2, 0.18) ref -> rdx single-def "argument with side effect"
-; V502 tmp489 [V502,T235] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V502 tmp489 [V502,T234] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
;* V503 tmp490 [V503 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
-; V504 tmp491 [V504,T236] ( 2, 0 ) ref -> r8 single-def "argument with side effect"
-; V505 tmp492 [V505,T237] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
-; V506 tmp493 [V506,T238] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
+; V504 tmp491 [V504,T235] ( 2, 0 ) ref -> r8 single-def "argument with side effect"
+; V505 tmp492 [V505,T236] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V506 tmp493 [V506,T237] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
; V507 tmp494 [V507,T147] ( 2, 1.54) ref -> rcx single-def "argument with side effect"
-; V508 tmp495 [V508,T239] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V508 tmp495 [V508,T238] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
;* V509 tmp496 [V509 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
; V510 cse0 [V510,T80] ( 3, 2.88) ref -> r13 "CSE #46: conservative"
; V511 cse1 [V511,T25] ( 12, 5.28) long -> [rbp-0xE8] multi-def "CSE #37: conservative"
@@ -2705,12 +2705,9 @@ G_M26282_IG223: ; bbWeight=0, gcVars=000000004000000000000000000000000000
call [System.RuntimeType:get_GenericParameterAttributes():int:this]
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M26282_IG225
- ;; size=90 bbWeight=0 PerfScore 0.00
+ ;; size=82 bbWeight=0 PerfScore 0.00
G_M26282_IG224: ; bbWeight=0, gcVars=0000000080000000000000000000000000000000000000000000000000004000 {V00 V49}, gcrefRegs=7048 {rbx rsi r12 r13 r14}, byrefRegs=0000 {}, gcvars, byref
; GC ptr vars -{V47}
mov rax, gword ptr [rbp-0x118]
@@ -3813,7 +3810,7 @@ G_M26282_IG324: ; bbWeight=0.00, funclet epilog, nogc, extend
ret
;; size=5 bbWeight=0.00 PerfScore 0.00
-; Total bytes of code 7282, prolog size 87, PerfScore 605.74, instruction count 1569, allocated bytes for code 7282 (MethodHash=41bc9955) for method System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver:CreatePropertyInfo(System.Text.Json.Serialization.Metadata.JsonTypeInfo,System.Type,System.Reflection.MemberInfo,System.Text.Json.JsonNamingPolicy,System.Reflection.NullabilityInfoContext,System.Nullable`1[int],System.Text.Json.JsonSerializerOptions,bool,bool):System.Text.Json.Serialization.Metadata.JsonPropertyInfo (Tier1)
+; Total bytes of code 7274, prolog size 87, PerfScore 605.74, instruction count 1566, allocated bytes for code 7274 (MethodHash=41bc9955) for method System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver:CreatePropertyInfo(System.Text.Json.Serialization.Metadata.JsonTypeInfo,System.Type,System.Reflection.MemberInfo,System.Text.Json.JsonNamingPolicy,System.Reflection.NullabilityInfoContext,System.Nullable`1[int],System.Text.Json.JsonSerializerOptions,bool,bool):System.Text.Json.Serialization.Metadata.JsonPropertyInfo (Tier1)
; ============================================================
Unwind Info:-8 (-0.10%) : 78446.dasm - System.Composition.CompositionContextExtensions:SatisfyImportsInternal(System.Composition.CompositionContext,System.Object,System.Composition.Convention.AttributedModelProvider) (Tier1)
@@ -24,7 +24,7 @@
; V12 tmp2 [V12,T48] ( 3, 3.66) ref -> rsi class-hnd exact "NewObj constructor temp" <System.Composition.TypedParts.ActivationFeatures.PropertyImportSite>
; V13 tmp3 [V13,T105] ( 3, 1.22) ref -> [rbp-0x170] do-not-enreg[Z] must-init class-hnd EH-live "impAppendStmt" <System.Type>
;* V14 tmp4 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "spilling ret_expr" <System.Composition.Hosting.Core.CompositionContract>
-; V15 tmp5 [V15,T264] ( 2, 0 ) ref -> rbx class-hnd exact "non-inline candidate call" <System.String>
+; V15 tmp5 [V15,T263] ( 2, 0 ) ref -> rbx class-hnd exact "non-inline candidate call" <System.String>
; V16 tmp6 [V16,T244] ( 3, 0 ) ref -> rsi class-hnd exact "NewObj constructor temp" <<unknown class>>
; V17 tmp7 [V17,T37] ( 2, 4.00) ref -> r8 class-hnd single-def "dup spill" <System.Func`2[System.Reflection.MethodInfo,bool]>
;* V18 tmp8 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "impAppendStmt" <System.Reflection.MethodInfo[]>
@@ -39,12 +39,12 @@
;* V27 tmp17 [V27 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Reflection.RuntimePropertyInfo>
; V28 tmp18 [V28,T87] ( 7, 1.93) ref -> rsi "guarded devirt return temp"
;* V29 tmp19 [V29 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Reflection.RuntimePropertyInfo>
-; V30 tmp20 [V30,T283] ( 2, 0 ) ubyte -> rax "guarded devirt return temp"
+; V30 tmp20 [V30,T282] ( 2, 0 ) ubyte -> rax "guarded devirt return temp"
;* V31 tmp21 [V31 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.SZGenericArrayEnumerator`1[System.Reflection.PropertyInfo]>
;* V32 tmp22 [V32 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.SZGenericArrayEnumerator`1[System.Reflection.PropertyInfo]>
; V33 tmp23 [V33,T77] ( 3, 2.00) ref -> registers "guarded devirt return temp"
;* V34 tmp24 [V34 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "guarded devirt this exact temp" <System.Linq.Enumerable+ArrayWhereIterator`1[System.Reflection.MethodInfo]>
-; V35 tmp25 [V35,T284] ( 2, 0 ) ubyte -> rax "guarded devirt return temp"
+; V35 tmp25 [V35,T283] ( 2, 0 ) ubyte -> rax "guarded devirt return temp"
; V36 tmp26 [V36,T07] ( 16, 47.25) ref -> rbx class-hnd exact "guarded devirt this exact temp" <System.Linq.Enumerable+ArrayWhereIterator`1[System.Reflection.MethodInfo]>
;* V37 tmp27 [V37 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Linq.Enumerable+ArrayWhereIterator`1[System.Reflection.MethodInfo]>
; V38 tmp28 [V38,T35] ( 3, 4.07) ref -> rbx class-hnd exact single-def "Inlining Arg" <System.RuntimeType>
@@ -145,7 +145,7 @@
; V133 tmp123 [V133,T236] ( 5, 0 ) ref -> rdi class-hnd "Inline stloc first use temp" <System.RuntimeType>
;* V134 tmp124 [V134,T288] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V135 tmp125 [V135,T237] ( 5, 0 ) ref -> r15 class-hnd exact "Inline stloc first use temp" <System.RuntimeType>
-; V136 tmp126 [V136,T261] ( 3, 0 ) int -> rax "Inline stloc first use temp"
+; V136 tmp126 [V136,T284] ( 2, 0 ) int -> rax "Inline stloc first use temp"
;* V137 tmp127 [V137 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V138 tmp128 [V138,T122] ( 2, 1.00) int -> rcx
;* V139 tmp129 [V139 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
@@ -284,7 +284,7 @@
;* V272 tmp262 [V272 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V273 tmp263 [V273 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V274 tmp264 [V274 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V275 tmp265 [V275,T265] ( 2, 0 ) byref -> r14 "Inlining Arg"
+; V275 tmp265 [V275,T264] ( 2, 0 ) byref -> r14 "Inlining Arg"
;* V276 tmp266 [V276 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V277 tmp267 [V277 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V278 tmp268 [V278 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[System.Object]>
@@ -309,7 +309,7 @@
;* V297 tmp287 [V297 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V298 tmp288 [V298 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V299 tmp289 [V299 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling ret_expr" <System.Type>
-; V300 tmp290 [V300,T266] ( 2, 0 ) ref -> rbx class-hnd exact "non-inline candidate call" <System.String>
+; V300 tmp290 [V300,T265] ( 2, 0 ) ref -> rbx class-hnd exact "non-inline candidate call" <System.String>
; V301 tmp291 [V301,T251] ( 3, 0 ) ref -> rsi class-hnd exact "NewObj constructor temp" <System.Reflection.TargetException>
;* V302 tmp292 [V302 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <System.Reflection.TargetException>
; V303 tmp293 [V303,T219] ( 3, 0.00) ubyte -> r8 "guarded devirt return temp"
@@ -350,11 +350,11 @@
;* V338 tmp328 [V338 ] ( 0, 0 ) struct (16) zero-ref "Inline stloc first use temp" <System.Span`1[bool]>
; V339 tmp329 [V339 ] ( 2, 0.00) ref -> [rbp-0xE0] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inlining Arg" <System.Object>
;* V340 tmp330 [V340 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[System.Object]>
-; V341 tmp331 [V341,T267] ( 2, 0.00) ref -> rdx class-hnd "impSpillSpecialSideEff" <System.Object>
+; V341 tmp331 [V341,T266] ( 2, 0.00) ref -> rdx class-hnd "impSpillSpecialSideEff" <System.Object>
; V342 tmp332 [V342,T253] ( 3, 0.00) ref -> rax class-hnd "dup spill" <System.Exception>
;* V343 tmp333 [V343 ] ( 0, 0 ) ref -> zero-ref
; V344 tmp334 [V344,T223] ( 3, 0.00) ref -> [rbp-0x188] do-not-enreg[Z] must-init class-hnd EH-live "Inline stloc first use temp" <System.Exception>
-; V345 tmp335 [V345,T262] ( 3, 0.00) int -> rax
+; V345 tmp335 [V345,T261] ( 3, 0.00) int -> rax
;* V346 tmp336 [V346 ] ( 0, 0 ) ref -> zero-ref class-hnd "impSpillSpecialSideEff" <System.Object>
; V347 tmp337 [V347,T254] ( 3, 0.00) ref -> rbx class-hnd exact "NewObj constructor temp" <<unknown class>>
;* V348 tmp338 [V348 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -366,7 +366,7 @@
;* V354 tmp344 [V354 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[bool]>
; V355 tmp345 [V355,T196] ( 2, 0.00) byref -> rdi "impAppendStmt"
;* V356 tmp346 [V356 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
-; V357 tmp347 [V357,T263] ( 3, 0 ) struct (16) [rbp-0xF8] do-not-enreg[DAS] must-init defined-via-address ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[System.Reflection.ParameterInfo]>
+; V357 tmp347 [V357,T262] ( 3, 0 ) struct (16) [rbp-0xF8] do-not-enreg[DAS] must-init defined-via-address ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[System.Reflection.ParameterInfo]>
;* V358 tmp348 [V358 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V359 tmp349 [V359,T238] ( 5, 0 ) ref -> rdi ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.RuntimeType>
;* V360 tmp350 [V360 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
@@ -380,7 +380,7 @@
; V368 tmp358 [V368 ] ( 3, 0 ) ubyte -> [rbp-0x100] do-not-enreg[X] must-init addr-exposed ld-addr-op "Inline stloc first use temp"
; V369 tmp359 [V369,T243] ( 4, 0 ) int -> rax "Inline stloc first use temp"
; V370 tmp360 [V370,T255] ( 3, 0 ) ref -> rcx class-hnd "dup spill" <System.Object>
-; V371 tmp361 [V371,T268] ( 2, 0 ) ref -> rbx class-hnd exact "impAppendStmt" <System.String>
+; V371 tmp361 [V371,T267] ( 2, 0 ) ref -> rbx class-hnd exact "impAppendStmt" <System.String>
;* V372 tmp362 [V372 ] ( 0, 0 ) ref -> zero-ref
;* V373 tmp363 [V373 ] ( 0, 0 ) ref -> zero-ref
;* V374 tmp364 [V374 ] ( 0, 0 ) ref -> zero-ref
@@ -415,8 +415,8 @@
;* V403 tmp393 [V403 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V404 tmp394 [V404 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
; V405 tmp395 [V405,T222] ( 6, 0.00) byref -> [rbp-0x198] spill-single-def "Inlining Arg"
-; V406 tmp396 [V406,T269] ( 2, 0.00) byref -> [rbp-0x1A0] spill-single-def "Inlining Arg"
-; V407 tmp397 [V407,T270] ( 2, 0.00) ref -> [rbp-0x1A8] class-hnd spill-single-def "Inlining Arg" <System.Reflection.MethodBase>
+; V406 tmp396 [V406,T268] ( 2, 0.00) byref -> [rbp-0x1A0] spill-single-def "Inlining Arg"
+; V407 tmp397 [V407,T269] ( 2, 0.00) ref -> [rbp-0x1A8] class-hnd spill-single-def "Inlining Arg" <System.Reflection.MethodBase>
;* V408 tmp398 [V408 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Composition.TypedParts.ImportInfo>
; V409 tmp399 [V409,T45] ( 3, 3.83) int -> rcx "Inline stloc first use temp"
; V410 tmp400 [V410,T36] ( 3, 4.07) ref -> rbx class-hnd exact single-def "Inlining Arg" <System.RuntimeType>
@@ -554,30 +554,30 @@
; V542 tmp532 [V542 ] ( 8, 4.11) int -> [rbp-0x11C] do-not-enreg[X] addr-exposed "field V418._capacity (fldOffset=0x14)" P-DEP
; V543 tmp533 [V543,T49] ( 3, 3.66) ref -> rcx "arr expr"
; V544 tmp534 [V544,T50] ( 3, 3.66) int -> r11 "index expr"
-; V545 tmp535 [V545,T271] ( 2, 0 ) ref -> rcx "argument with side effect"
-; V546 tmp536 [V546,T272] ( 2, 0 ) ref -> rdx "argument with side effect"
+; V545 tmp535 [V545,T270] ( 2, 0 ) ref -> rcx "argument with side effect"
+; V546 tmp536 [V546,T271] ( 2, 0 ) ref -> rdx "argument with side effect"
; V547 tmp537 [V547,T96] ( 2, 1.59) long -> rax "Cast away GC"
;* V548 tmp538 [V548 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V549 tmp539 [V549 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V550 tmp540 [V550 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V551 tmp541 [V551 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-; V552 tmp542 [V552,T273] ( 2, 0 ) ref -> rdx "argument with side effect"
-; V553 tmp543 [V553,T274] ( 2, 0 ) ref -> rdx "argument with side effect"
-; V554 tmp544 [V554,T275] ( 2, 0 ) ref -> rdx "argument with side effect"
+; V552 tmp542 [V552,T272] ( 2, 0 ) ref -> rdx "argument with side effect"
+; V553 tmp543 [V553,T273] ( 2, 0 ) ref -> rdx "argument with side effect"
+; V554 tmp544 [V554,T274] ( 2, 0 ) ref -> rdx "argument with side effect"
; V555 tmp545 [V555,T183] ( 6, 0.00) ref -> r15 "Field obj"
; V556 tmp546 [V556,T180] ( 3, 0.00) ref -> rcx "arr expr"
; V557 tmp547 [V557,T259] ( 3, 0 ) ref -> rcx "argument with side effect"
-; V558 tmp548 [V558,T276] ( 2, 0 ) ref -> rdx "argument with side effect"
-; V559 tmp549 [V559,T277] ( 2, 0 ) ref -> rdx "argument with side effect"
+; V558 tmp548 [V558,T275] ( 2, 0 ) ref -> rdx "argument with side effect"
+; V559 tmp549 [V559,T276] ( 2, 0 ) ref -> rdx "argument with side effect"
; V560 tmp550 [V560,T260] ( 3, 0.00) ref -> rdx "arr expr"
; V561 tmp551 [V561 ] ( 6, 0.00) struct (16) [rbp-0x140] do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.Span`1[System.Object]>
; V562 tmp552 [V562,T184] ( 3, 0.00) ref -> rax "argument with side effect"
-; V563 tmp553 [V563,T278] ( 2, 0 ) ref -> rdx "argument with side effect"
-; V564 tmp554 [V564,T279] ( 2, 0 ) ref -> rdi "argument with side effect"
-; V565 tmp555 [V565,T280] ( 2, 0 ) ref -> r8 "argument with side effect"
-; V566 tmp556 [V566,T281] ( 2, 0 ) ref -> rdx "argument with side effect"
+; V563 tmp553 [V563,T277] ( 2, 0 ) ref -> rdx "argument with side effect"
+; V564 tmp554 [V564,T278] ( 2, 0 ) ref -> rdi "argument with side effect"
+; V565 tmp555 [V565,T279] ( 2, 0 ) ref -> r8 "argument with side effect"
+; V566 tmp556 [V566,T280] ( 2, 0 ) ref -> rdx "argument with side effect"
;* V567 tmp557 [V567 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-; V568 tmp558 [V568,T282] ( 2, 0 ) ref -> rdx "argument with side effect"
+; V568 tmp558 [V568,T281] ( 2, 0 ) ref -> rdx "argument with side effect"
; V569 tmp559 [V569,T88] ( 6, 1.84) ref -> rax "argument with side effect"
; V570 cse0 [V570,T124] ( 3, 1.00) int -> rdx "CSE #03: conservative"
; V571 cse1 [V571,T104] ( 3, 0.99) long -> rdi "CSE #31: conservative"
@@ -1533,12 +1533,9 @@ G_M6457_IG91: ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000
call [System.RuntimeType:get_GenericParameterAttributes():int:this]
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M6457_IG93
- ;; size=71 bbWeight=0 PerfScore 0.00
+ ;; size=63 bbWeight=0 PerfScore 0.00
G_M6457_IG92: ; bbWeight=0, gcrefRegs=8048 {rbx rsi r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rdi]
mov rdi, r15
@@ -2715,7 +2712,7 @@ G_M6457_IG202: ; bbWeight=0.00, gcVars=0000000000000000000000000000000000
test byte ptr [r14], 1
jne SHORT G_M6457_IG209
;; size=80 bbWeight=0.00 PerfScore 0.00
-G_M6457_IG203: ; bbWeight=0.00, gcVars=00000000000060000000000040000000000000800000000000000000000000000000000009240000 {V00 V01 V02 V03 V332 V405 V406 V407}, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0008 {rbx}, gcvars, byref, isz
+G_M6457_IG203: ; bbWeight=0.00, gcVars=00000000000030000000000040000000000000800000000000000000000000000000000009240000 {V00 V01 V02 V03 V332 V405 V406 V407}, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0008 {rbx}, gcvars, byref, isz
; byrRegs -[r14]
cmp dword ptr [(reloc)], 0
je SHORT G_M6457_IG208
@@ -4314,7 +4311,7 @@ G_M6457_IG356: ; bbWeight=0.00, funclet epilog, nogc, extend
ret
;; size=5 bbWeight=0.00 PerfScore 0.00
-; Total bytes of code 8188, prolog size 107, PerfScore 1156.74, instruction count 1784, allocated bytes for code 8188 (MethodHash=2134e6c6) for method System.Composition.CompositionContextExtensions:SatisfyImportsInternal(System.Composition.CompositionContext,System.Object,System.Composition.Convention.AttributedModelProvider) (Tier1)
+; Total bytes of code 8180, prolog size 107, PerfScore 1156.74, instruction count 1781, allocated bytes for code 8180 (MethodHash=2134e6c6) for method System.Composition.CompositionContextExtensions:SatisfyImportsInternal(System.Composition.CompositionContext,System.Object,System.Composition.Convention.AttributedModelProvider) (Tier1)
; ============================================================
Unwind Info:-16 (-0.08%) : 720995.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindIndexerOrIndexedPropertyAccess(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.PropertySymbol],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
@@ -101,7 +101,7 @@
;* V89 tmp78 [V89,T363] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]>
;* V90 tmp79 [V90,T327] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[Microsoft.CodeAnalysis.CSharp.Symbols.PropertySymbol]>
; V91 tmp80 [V91,T23] ( 16, 11.40) ref -> [rbp-0xF68] class-hnd spill-single-def "Inline stloc first use temp" <<unknown class>>
-; V92 tmp81 [V92,T01] ( 24, 45.27) ushort -> [rbp-0x9C] spill-single-def "Inlining Arg"
+; V92 tmp81 [V92,T02] ( 23, 43.41) ushort -> [rbp-0x9C] spill-single-def "Inlining Arg"
; V93 tmp82 [V93,T320] ( 3, 2 ) int -> registers
; V94 tmp83 [V94,T77] ( 5, 5.17) ubyte -> [rbp-0xA0] spill-single-def "Inline stloc first use temp"
; V95 tmp84 [V95,T04] ( 21, 33.26) ref -> [rbp-0xF70] class-hnd spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.OverloadResolution>
@@ -581,7 +581,7 @@
;* V569 tmp558 [V569 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol>
;* V570 tmp559 [V570 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V571 tmp560 [V571,T345] ( 3, 1.87) ubyte -> rax "Inlining Arg"
-; V572 tmp561 [V572,T02] ( 13, 44.62) struct (128) [rbp-0xC48] do-not-enreg[S] must-init "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[Microsoft.CodeAnalysis.CSharp.Symbols.PropertySymbol]>
+; V572 tmp561 [V572,T01] ( 13, 44.62) struct (128) [rbp-0xC48] do-not-enreg[S] must-init "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[Microsoft.CodeAnalysis.CSharp.Symbols.PropertySymbol]>
; V573 tmp562 [V573,T11] ( 9, 20.59) ref -> [rbp-0x10C0] class-hnd exact spill-single-def "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1+Builder[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon]]>
; V574 tmp563 [V574,T79] ( 5, 5.15) int -> [rbp-0xC4C] spill-single-def "Inline stloc first use temp"
;* V575 tmp564 [V575 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
@@ -4938,12 +4938,7 @@ G_M18995_IG300: ; bbWeight=1.00, gcrefRegs=C0C8 {rbx rsi rdi r14 r15}, by
je SHORT G_M18995_IG302
;; size=86 bbWeight=1.00 PerfScore 13.00
G_M18995_IG301: ; bbWeight=0.93, gcrefRegs=D0C8 {rbx rsi rdi r12 r14 r15}, byrefRegs=0000 {}, byref
- mov r10d, dword ptr [rbp-0x9C]
- mov r8d, r10d
- and r8d, 64
- mov edx, r10d
- and edx, 512
- or r8d, edx
+ test dword ptr [rbp-0x9C], 576
jne G_M18995_IG464
lea r8, bword ptr [rbp-0x60]
; byrRegs +[r8]
@@ -4955,7 +4950,7 @@ G_M18995_IG301: ; bbWeight=0.93, gcrefRegs=D0C8 {rbx rsi rdi r12 r14 r15}
; gcrRegs -[rdx]
; byrRegs -[r8]
; gcr arg pop 0
- ;; size=66 bbWeight=0.93 PerfScore 7.67
+ ;; size=50 bbWeight=0.93 PerfScore 6.50
G_M18995_IG302: ; bbWeight=1.00, gcrefRegs=D0C8 {rbx rsi rdi r12 r14 r15}, byrefRegs=0000 {}, byref
xor rcx, rcx
; gcrRegs +[rcx]
@@ -7645,7 +7640,7 @@ G_M18995_IG479: ; bbWeight=0, gcVars=000000000000000000000000000000000000
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 18947, prolog size 103, PerfScore 1899.96, instruction count 3498, allocated bytes for code 18947 (MethodHash=6983b5cc) for method Microsoft.CodeAnalysis.CSharp.Binder:BindIndexerOrIndexedPropertyAccess(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.PropertySymbol],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
+; Total bytes of code 18931, prolog size 103, PerfScore 1898.80, instruction count 3493, allocated bytes for code 18931 (MethodHash=6983b5cc) for method Microsoft.CodeAnalysis.CSharp.Binder:BindIndexerOrIndexedPropertyAccess(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.PropertySymbol],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
; ============================================================
Unwind Info:-14 (-0.08%) : 721261.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<ResolveExtension>g__resolveMethods|535_1(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations],Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,byte,Microsoft.CodeAnalysis.CSharp.LookupResult,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,byref,ushort,byref,Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.MethodGroupResolution (Tier1)
@@ -160,7 +160,7 @@
; V148 tmp126 [V148,T22] ( 11, 19.59) ref -> [rbp-0xEB8] class-hnd spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.AnalyzedArguments>
;* V149 tmp127 [V149 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
; V150 tmp128 [V150,T33] ( 19, 13.58) ref -> [rbp-0xEC0] class-hnd spill-single-def "Inline stloc first use temp" <<unknown class>>
-; V151 tmp129 [V151,T07] ( 24, 47.13) ushort -> [rbp-0x104] spill-single-def "Inlining Arg"
+; V151 tmp129 [V151,T07] ( 23, 45.27) ushort -> [rbp-0x104] spill-single-def "Inlining Arg"
; V152 tmp130 [V152,T244] ( 3, 2.00) int -> registers
; V153 tmp131 [V153,T99] ( 5, 5.17) ubyte -> [rbp-0x108] spill-single-def "Inline stloc first use temp"
; V154 tmp132 [V154,T337] ( 2, 0.27) ref -> rcx class-hnd single-def "dup spill" <System.Func`2[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,bool]>
@@ -4580,12 +4580,7 @@ G_M16096_IG338: ; bbWeight=1.00, gcrefRegs=10C0 {rsi rdi r12}, byrefRegs=
je SHORT G_M16096_IG340
;; size=79 bbWeight=1.00 PerfScore 11.50
G_M16096_IG339: ; bbWeight=0.93, gcrefRegs=10C0 {rsi rdi r12}, byrefRegs=0000 {}, byref
- mov eax, dword ptr [rbp-0x104]
- mov r8d, eax
- and r8d, 64
- mov edx, eax
- and edx, 512
- or r8d, edx
+ test dword ptr [rbp-0x104], 576
jne G_M16096_IG522
lea r8, [rbp-0x58]
mov rdx, gword ptr [rbp-0xEC0]
@@ -4595,7 +4590,7 @@ G_M16096_IG339: ; bbWeight=0.93, gcrefRegs=10C0 {rsi rdi r12}, byrefRegs=
call [r10]Microsoft.CodeAnalysis.CSharp.OverloadResolution:RemoveLessDerivedMembers[System.__Canon](Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon]],byref)
; gcrRegs -[rdx]
; gcr arg pop 0
- ;; size=64 bbWeight=0.93 PerfScore 7.66
+ ;; size=50 bbWeight=0.93 PerfScore 6.50
G_M16096_IG340: ; bbWeight=1.00, gcrefRegs=10C0 {rsi rdi r12}, byrefRegs=0000 {}, byref
xor rcx, rcx
; gcrRegs +[rcx]
@@ -7097,7 +7092,7 @@ G_M16096_IG531: ; bbWeight=0, gcVars=000000000000000000000000000000000000
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 16950, prolog size 113, PerfScore 2393.47, instruction count 3281, allocated bytes for code 16950 (MethodHash=83cac11f) for method Microsoft.CodeAnalysis.CSharp.Binder:<ResolveExtension>g__resolveMethods|535_1(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations],Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,byte,Microsoft.CodeAnalysis.CSharp.LookupResult,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,byref,ushort,byref,Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.MethodGroupResolution (Tier1)
+; Total bytes of code 16936, prolog size 113, PerfScore 2392.31, instruction count 3276, allocated bytes for code 16936 (MethodHash=83cac11f) for method Microsoft.CodeAnalysis.CSharp.Binder:<ResolveExtension>g__resolveMethods|535_1(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations],Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,byte,Microsoft.CodeAnalysis.CSharp.LookupResult,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,byref,ushort,byref,Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.MethodGroupResolution (Tier1)
; ============================================================
Unwind Info:-14 (-0.07%) : 721252.dasm - Microsoft.CodeAnalysis.CSharp.Binder:ResolveExtension(Microsoft.CodeAnalysis.SyntaxNode,System.String,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.CSharp.BoundExpression,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations],ushort,byte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,byref,bool,byref):Microsoft.CodeAnalysis.CSharp.MethodGroupResolution:this (Tier1)
@@ -279,7 +279,7 @@
; V267 tmp241 [V267,T47] ( 2, 37.99) ref -> rdi class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1+Builder[Microsoft.CodeAnalysis.CSharp.SingleLookupResult]>
;* V268 tmp242 [V268 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbol]>
; V269 tmp243 [V269,T03] ( 7,100.70) ref -> [rbp-0xEF8] class-hnd exact spill-single-def "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]>
-; V270 tmp244 [V270,T27] ( 5, 52.47) int -> [rbp-0x1D4] "Inline stloc first use temp"
+; V270 tmp244 [V270,T26] ( 5, 52.47) int -> [rbp-0x1D4] "Inline stloc first use temp"
;* V271 tmp245 [V271 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd "Inline ldloca(s) first use temp" <Microsoft.CodeAnalysis.CSharp.Symbol>
; V272 tmp246 [V272,T09] ( 3, 71.65) ref -> [rbp-0xF00] class-hnd spill-single-def "impAppendStmt" <System.__Canon[]>
; V273 tmp247 [V273,T04] ( 4, 95.53) long -> [rbp-0x1E0] spill-single-def "Inlining Arg"
@@ -496,7 +496,7 @@
; V484 tmp458 [V484,T83] ( 11, 21.28) ref -> [rbp-0xF68] class-hnd exact spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.AnalyzedArguments>
;* V485 tmp459 [V485 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
; V486 tmp460 [V486,T127] ( 16, 12.60) ref -> [rbp-0xF70] class-hnd spill-single-def "Inline stloc first use temp" <<unknown class>>
-; V487 tmp461 [V487,T26] ( 24, 53.58) ushort -> [rbp-0x34C] spill-single-def "Inlining Arg"
+; V487 tmp461 [V487,T28] ( 23, 51.56) ushort -> [rbp-0x34C] spill-single-def "Inlining Arg"
; V488 tmp462 [V488,T321] ( 3, 2.17) int -> registers
; V489 tmp463 [V489,T192] ( 5, 5.61) ubyte -> [rbp-0x350] spill-single-def "Inline stloc first use temp"
; V490 tmp464 [V490,T397] ( 2, 0.29) ref -> rcx class-hnd "dup spill" <System.Func`2[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,bool]>
@@ -899,7 +899,7 @@
; V887 rat5 [V887,T12] ( 6, 68.52) long -> rsi "Widened IV V675"
; V888 rat6 [V888,T31] ( 6, 48.14) long -> rdx "Widened IV V317"
; V889 rat7 [V889,T90] ( 6, 19.87) long -> r10 "Widened IV V321"
-; V890 rat8 [V890,T28] ( 6, 52.35) long -> r13 "Widened IV V699"
+; V890 rat8 [V890,T27] ( 6, 52.35) long -> r13 "Widened IV V699"
; V891 rat9 [V891,T121] ( 6, 13.95) long -> r14 "Widened IV V497"
; V892 rat10 [V892,T67] ( 7, 27.05) long -> [rbp-0xE80] "Widened IV V717"
; V893 rat11 [V893,T284] ( 6, 2.97) long -> [rbp-0xE88] "Widened IV V609"
@@ -5008,12 +5008,7 @@ G_M34365_IG371: ; bbWeight=1.09, gcrefRegs=30C8 {rbx rsi rdi r12 r13}, by
je SHORT G_M34365_IG373
;; size=80 bbWeight=1.09 PerfScore 12.49
G_M34365_IG372: ; bbWeight=1.01, gcrefRegs=30C8 {rbx rsi rdi r12 r13}, byrefRegs=0000 {}, byref
- mov eax, dword ptr [rbp-0x34C]
- mov r8d, eax
- and r8d, 64
- mov edx, eax
- and edx, 512
- or r8d, edx
+ test dword ptr [rbp-0x34C], 576
jne G_M34365_IG569
lea r8, [rbp-0x268]
mov rdx, gword ptr [rbp-0xF70]
@@ -5023,7 +5018,7 @@ G_M34365_IG372: ; bbWeight=1.01, gcrefRegs=30C8 {rbx rsi rdi r12 r13}, by
call [r10]Microsoft.CodeAnalysis.CSharp.OverloadResolution:RemoveLessDerivedMembers[System.__Canon](Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon]],byref)
; gcrRegs -[rdx]
; gcr arg pop 0
- ;; size=67 bbWeight=1.01 PerfScore 8.33
+ ;; size=53 bbWeight=1.01 PerfScore 7.07
G_M34365_IG373: ; bbWeight=1.09, gcrefRegs=30C8 {rbx rsi rdi r12 r13}, byrefRegs=0000 {}, byref
xor rcx, rcx
; gcrRegs +[rcx]
@@ -8044,7 +8039,7 @@ G_M34365_IG603: ; bbWeight=0.00, funclet epilog, nogc, extend
ret
;; size=8 bbWeight=0.00 PerfScore 0.00
-; Total bytes of code 19240, prolog size 127, PerfScore 5571.92, instruction count 3717, allocated bytes for code 19240 (MethodHash=a68f79c2) for method Microsoft.CodeAnalysis.CSharp.Binder:ResolveExtension(Microsoft.CodeAnalysis.SyntaxNode,System.String,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.CSharp.BoundExpression,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations],ushort,byte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,byref,bool,byref):Microsoft.CodeAnalysis.CSharp.MethodGroupResolution:this (Tier1)
+; Total bytes of code 19226, prolog size 127, PerfScore 5570.65, instruction count 3712, allocated bytes for code 19226 (MethodHash=a68f79c2) for method Microsoft.CodeAnalysis.CSharp.Binder:ResolveExtension(Microsoft.CodeAnalysis.SyntaxNode,System.String,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.CSharp.BoundExpression,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations],ushort,byte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,byref,bool,byref):Microsoft.CodeAnalysis.CSharp.MethodGroupResolution:this (Tier1)
; ============================================================
Unwind Info:-12 (-0.06%) : 715714.dasm - Microsoft.CodeAnalysis.CSharp.Binder:ResolveMethodGroupInternal(Microsoft.CodeAnalysis.CSharp.BoundMethodGroup,Microsoft.CodeAnalysis.SyntaxNode,System.String,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,byref,ushort,bool,byte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,byref):Microsoft.CodeAnalysis.CSharp.MethodGroupResolution:this (Tier1)
@@ -41,7 +41,7 @@
; V29 tmp12 [V29,T03] ( 22, 32.35) ref -> [rbp-0xFA8] class-hnd exact spill-single-def "impAppendStmt" <Microsoft.CodeAnalysis.CSharp.OverloadResolution>
; V30 tmp13 [V30,T05] ( 11, 25.78) ref -> [rbp-0xFB0] class-hnd exact spill-single-def "impAppendStmt" <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol]>
; V31 tmp14 [V31,T206] ( 6, 3.18) ref -> [rbp-0xFB8] class-hnd exact spill-single-def "impAppendStmt" <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]>
-; V32 tmp15 [V32,T00] ( 27, 47.21) ushort -> [rbp-0xB0] "Inlining Arg"
+; V32 tmp15 [V32,T01] ( 26, 45.50) ushort -> [rbp-0xB0] "Inlining Arg"
; V33 tmp16 [V33,T177] ( 2, 3.67) ref -> rax class-hnd exact single-def "impAppendStmt" <Microsoft.CodeAnalysis.CSharp.AnalyzedArguments>
;* V34 tmp17 [V34 ] ( 0, 0 ) struct (56) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.MethodGroupResolution>
; V35 tmp18 [V35 ] ( 8, 0 ) struct (56) [rbp-0xE8] do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.MethodGroupResolution>
@@ -139,7 +139,7 @@
;* V127 tmp110 [V127,T476] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V128 tmp111 [V128 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]>
; V129 tmp112 [V129,T47] ( 2, 7.96) ref -> r12 class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]>
-; V130 tmp113 [V130,T01] ( 49, 46.48) ref -> r12 class-hnd "Inlining Arg" <System.__Canon>
+; V130 tmp113 [V130,T00] ( 49, 46.48) ref -> r12 class-hnd "Inlining Arg" <System.__Canon>
; V131 tmp114 [V131,T104] ( 7, 4.41) ref -> [rbp-0x1028] class-hnd spill-single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol>
; V132 tmp115 [V132,T294] ( 3, 2.42) ubyte -> [rbp-0x174] spill-single-def "Inline stloc first use temp"
; V133 tmp116 [V133,T148] ( 3, 3.98) int -> r11
@@ -5409,11 +5409,7 @@ G_M39958_IG340: ; bbWeight=0.92, gcrefRegs=4048 {rbx rsi r14}, byrefRegs=
;; size=81 bbWeight=0.92 PerfScore 11.01
G_M39958_IG341: ; bbWeight=0.85, gcrefRegs=5048 {rbx rsi r12 r14}, byrefRegs=0080 {rdi}, byref
mov r15d, dword ptr [rbp-0xB0]
- mov r8d, r15d
- and r8d, 64
- mov edx, r15d
- and edx, 512
- or r8d, edx
+ test r15d, 576
jne G_M39958_IG532
mov r8, rdi
; byrRegs +[r8]
@@ -5426,7 +5422,7 @@ G_M39958_IG341: ; bbWeight=0.85, gcrefRegs=5048 {rbx rsi r12 r14}, byrefR
; byrRegs -[r8]
; gcr arg pop 0
mov dword ptr [rbp-0xB0], r15d
- ;; size=71 bbWeight=0.85 PerfScore 7.67
+ ;; size=59 bbWeight=0.85 PerfScore 6.82
G_M39958_IG342: ; bbWeight=0.92, gcrefRegs=5048 {rbx rsi r12 r14}, byrefRegs=0080 {rdi}, byref
xor rcx, rcx
; gcrRegs +[rcx]
@@ -8498,7 +8494,7 @@ G_M39958_IG540: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 20888, prolog size 129, PerfScore 1952.24, instruction count 3902, allocated bytes for code 20888 (MethodHash=fa4563e9) for method Microsoft.CodeAnalysis.CSharp.Binder:ResolveMethodGroupInternal(Microsoft.CodeAnalysis.CSharp.BoundMethodGroup,Microsoft.CodeAnalysis.SyntaxNode,System.String,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,byref,ushort,bool,byte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,byref):Microsoft.CodeAnalysis.CSharp.MethodGroupResolution:this (Tier1)
+; Total bytes of code 20876, prolog size 129, PerfScore 1951.39, instruction count 3898, allocated bytes for code 20876 (MethodHash=fa4563e9) for method Microsoft.CodeAnalysis.CSharp.Binder:ResolveMethodGroupInternal(Microsoft.CodeAnalysis.CSharp.BoundMethodGroup,Microsoft.CodeAnalysis.SyntaxNode,System.String,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,byref,ushort,bool,byte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,byref):Microsoft.CodeAnalysis.CSharp.MethodGroupResolution:this (Tier1)
; ============================================================
Unwind Info:-12 (-0.06%) : 720989.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindIndexerAccess(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
@@ -181,7 +181,7 @@
;* V169 tmp156 [V169,T394] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]>
; V170 tmp157 [V170,T188] ( 2, 3.93) ref -> r8 class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[Microsoft.CodeAnalysis.CSharp.Symbols.PropertySymbol]>
; V171 tmp158 [V171,T14] ( 22, 16.38) ref -> r14 class-hnd single-def "Inline stloc first use temp" <<unknown class>>
-; V172 tmp159 [V172,T02] ( 24, 46.90) ushort -> rbx "Inlining Arg"
+; V172 tmp159 [V172,T02] ( 23, 45.08) ushort -> rbx "Inlining Arg"
; V173 tmp160 [V173,T353] ( 3, 1.96) int -> r15
; V174 tmp161 [V174,T102] ( 5, 5.08) ubyte -> r15 single-def "Inline stloc first use temp"
; V175 tmp162 [V175,T04] ( 21, 31.58) ref -> rdi class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.OverloadResolution>
@@ -4593,11 +4593,7 @@ G_M22511_IG272: ; bbWeight=0.98, gcrefRegs=6080 {rdi r13 r14}, byrefRegs=
je SHORT G_M22511_IG274
;; size=74 bbWeight=0.98 PerfScore 10.56
G_M22511_IG273: ; bbWeight=0.91, gcrefRegs=60C0 {rsi rdi r13 r14}, byrefRegs=0000 {}, byref
- mov r8d, ebx
- and r8d, 64
- mov edx, ebx
- and edx, 512
- or r8d, edx
+ test ebx, 576
jne G_M22511_IG515
lea r8, bword ptr [rbp-0xC8]
; byrRegs +[r8]
@@ -4609,7 +4605,7 @@ G_M22511_IG273: ; bbWeight=0.91, gcrefRegs=60C0 {rsi rdi r13 r14}, byrefR
; gcrRegs -[rdx]
; byrRegs -[r8]
; gcr arg pop 0
- ;; size=56 bbWeight=0.91 PerfScore 5.93
+ ;; size=44 bbWeight=0.91 PerfScore 5.02
G_M22511_IG274: ; bbWeight=0.98, gcrefRegs=60C0 {rsi rdi r13 r14}, byrefRegs=0000 {}, byref
xor rcx, rcx
; gcrRegs +[rcx]
@@ -8788,7 +8784,7 @@ G_M22511_IG574: ; bbWeight=0.00, funclet epilog, nogc, extend
ret
;; size=8 bbWeight=0.00 PerfScore 0.00
-; Total bytes of code 21631, prolog size 102, PerfScore 2040.62, instruction count 4063, allocated bytes for code 21631 (MethodHash=b456a810) for method Microsoft.CodeAnalysis.CSharp.Binder:BindIndexerAccess(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
+; Total bytes of code 21619, prolog size 102, PerfScore 2039.71, instruction count 4059, allocated bytes for code 21619 (MethodHash=b456a810) for method Microsoft.CodeAnalysis.CSharp.Binder:BindIndexerAccess(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
; ============================================================
Unwind Info:-12 (-0.05%) : 715570.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindMethodGroupInvocation(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.SyntaxNode,System.String,Microsoft.CodeAnalysis.CSharp.BoundMethodGroup,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,bool,byref,bool,bool):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
@@ -158,7 +158,7 @@
; V146 tmp121 [V146,T04] ( 21, 29.44) ref -> [rbp-0x11E8] class-hnd exact spill-single-def "impAppendStmt" <Microsoft.CodeAnalysis.CSharp.OverloadResolution>
; V147 tmp122 [V147,T05] ( 11, 25.79) ref -> [rbp-0x11F0] class-hnd exact spill-single-def "impAppendStmt" <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol]>
; V148 tmp123 [V148,T209] ( 6, 3.18) ref -> [rbp-0x11F8] class-hnd exact spill-single-def "impAppendStmt" <Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]>
-; V149 tmp124 [V149,T01] ( 26, 47.39) ushort -> [rbp-0x258] "Inlining Arg"
+; V149 tmp124 [V149,T02] ( 25, 45.69) ushort -> [rbp-0x258] "Inlining Arg"
; V150 tmp125 [V150,T182] ( 2, 3.67) ref -> rax class-hnd exact single-def "impAppendStmt" <Microsoft.CodeAnalysis.CSharp.AnalyzedArguments>
;* V151 tmp126 [V151 ] ( 0, 0 ) struct (56) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.MethodGroupResolution>
;* V152 tmp127 [V152 ] ( 0, 0 ) struct (56) zero-ref do-not-enreg[XS] addr-exposed ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.MethodGroupResolution>
@@ -578,7 +578,7 @@
;* V566 tmp541 [V566 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol>
;* V567 tmp542 [V567 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V568 tmp543 [V568,T394] ( 3, 1.71) ubyte -> r8 "Inlining Arg"
-; V569 tmp544 [V569,T02] ( 15, 47.25) struct (128) [rbp-0xDE0] do-not-enreg[S] must-init "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol]>
+; V569 tmp544 [V569,T01] ( 15, 47.25) struct (128) [rbp-0xDE0] do-not-enreg[S] must-init "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol]>
; V570 tmp545 [V570,T10] ( 9, 18.90) ref -> [rbp-0x13A0] class-hnd exact spill-single-def "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1+Builder[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon]]>
; V571 tmp546 [V571,T92] ( 5, 4.73) int -> r15 "Inline stloc first use temp"
;* V572 tmp547 [V572 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
@@ -4762,11 +4762,7 @@ G_M46888_IG275: ; bbWeight=0.92, gcrefRegs=40C8 {rbx rsi rdi r14}, byrefR
je SHORT G_M46888_IG277
;; size=75 bbWeight=0.92 PerfScore 10.32
G_M46888_IG276: ; bbWeight=0.85, gcrefRegs=40C8 {rbx rsi rdi r14}, byrefRegs=0000 {}, byref
- mov r8d, r13d
- and r8d, 64
- mov edx, r13d
- and edx, 512
- or r8d, edx
+ test r13d, 576
jne G_M46888_IG475
lea r8, bword ptr [rbp-0x58]
; byrRegs +[r8]
@@ -4778,7 +4774,7 @@ G_M46888_IG276: ; bbWeight=0.85, gcrefRegs=40C8 {rbx rsi rdi r14}, byrefR
; gcrRegs -[rdx]
; byrRegs -[r8]
; gcr arg pop 0
- ;; size=58 bbWeight=0.85 PerfScore 6.18
+ ;; size=46 bbWeight=0.85 PerfScore 5.33
G_M46888_IG277: ; bbWeight=0.92, gcrefRegs=40C8 {rbx rsi rdi r14}, byrefRegs=0000 {}, byref
xor rcx, rcx
; gcrRegs +[rcx]
@@ -8671,7 +8667,7 @@ G_M46888_IG522: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 21979, prolog size 113, PerfScore 1992.43, instruction count 4028, allocated bytes for code 21979 (MethodHash=78b448d7) for method Microsoft.CodeAnalysis.CSharp.Binder:BindMethodGroupInvocation(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.SyntaxNode,System.String,Microsoft.CodeAnalysis.CSharp.BoundMethodGroup,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,bool,byref,bool,bool):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
+; Total bytes of code 21967, prolog size 113, PerfScore 1991.58, instruction count 4024, allocated bytes for code 21967 (MethodHash=78b448d7) for method Microsoft.CodeAnalysis.CSharp.Binder:BindMethodGroupInvocation(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.SyntaxNode,System.String,Microsoft.CodeAnalysis.CSharp.BoundMethodGroup,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,bool,byref,bool,bool):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
; ============================================================
Unwind Info:-52 (-1.87%) : 741683.dasm - Xunit.Sdk.Sha1Digest:ProcessBlock():this (Tier1)
@@ -10,11 +10,11 @@
; Final local variable assignments
;
; V00 this [V00,T63] ( 14, 14.00) ref -> rcx this class-hnd single-def <Xunit.Sdk.Sha1Digest>
-; V01 loc0 [V01,T13] ( 70,182.00) int -> rax
-; V02 loc1 [V02,T16] ( 68,182.00) int -> r9
-; V03 loc2 [V03,T17] ( 61,182.00) int -> rsi
-; V04 loc3 [V04,T15] ( 69,182.00) int -> rbp
-; V05 loc4 [V05,T14] ( 70,182.00) int -> r15
+; V01 loc0 [V01,T13] ( 68,177.00) int -> rax
+; V02 loc1 [V02,T15] ( 67,177.00) int -> r9
+; V03 loc2 [V03,T17] ( 59,177.00) int -> rsi
+; V04 loc3 [V04,T16] ( 67,177.00) int -> rbp
+; V05 loc4 [V05,T14] ( 68,177.00) int -> r15
; V06 loc5 [V06,T08] ( 73,201.00) int -> registers
;* V07 loc6 [V07,T81] ( 0, 0 ) int -> zero-ref
; V08 loc7 [V08,T18] ( 2,129.74) int -> rax
@@ -359,13 +359,11 @@ G_M42046_IG11: ; bbWeight=1.00, gcrefRegs=000A {rcx rbx}, byrefRegs=0000
;; size=6 bbWeight=1.00 PerfScore 0.25
G_M42046_IG12: ; bbWeight=5.00, gcrefRegs=000A {rcx rbx}, byrefRegs=0000 {}, byref
lea r14d, [r13+0x01]
- mov edi, r9d
- and edi, esi
- mov r11d, r9d
- and r11d, ebp
- or r11d, edi
mov edi, esi
and edi, ebp
+ mov r11d, esi
+ or r11d, ebp
+ and r11d, r9d
or r11d, edi
mov edi, eax
rol edi, 5
@@ -385,13 +383,11 @@ G_M42046_IG12: ; bbWeight=5.00, gcrefRegs=000A {rcx rbx}, byrefRegs=0000
rol r9d, 30
mov r11d, r14d
lea r14d, [r11+0x01]
- mov edi, eax
- and edi, r9d
- mov r13d, eax
- and r13d, esi
- or edi, r13d
+ mov edi, r9d
+ and edi, esi
mov r13d, r9d
- and r13d, esi
+ or r13d, esi
+ and r13d, eax
or edi, r13d
mov r13d, r15d
rol r13d, 5
@@ -404,14 +400,12 @@ G_M42046_IG12: ; bbWeight=5.00, gcrefRegs=000A {rcx rbx}, byrefRegs=0000
rol eax, 30
mov r11d, r14d
lea r14d, [r11+0x01]
- mov r13d, r15d
- ; gcrRegs -[r13]
- and r13d, eax
- mov edi, r15d
- and edi, r9d
- or edi, r13d
mov r13d, eax
+ ; gcrRegs -[r13]
and r13d, r9d
+ mov edi, eax
+ or edi, r9d
+ and edi, r15d
or edi, r13d
mov r13d, ebp
rol r13d, 5
@@ -424,21 +418,17 @@ G_M42046_IG12: ; bbWeight=5.00, gcrefRegs=000A {rcx rbx}, byrefRegs=0000
rol r15d, 30
mov r11d, r14d
lea r14d, [r11+0x01]
- mov r13d, ebp
- ; gcrRegs -[r13]
- and r13d, r15d
- mov edi, ebp
- and edi, eax
- or edi, r13d
mov r13d, r15d
+ ; gcrRegs -[r13]
and r13d, eax
+ mov edi, r15d
+ or edi, eax
+ and edi, ebp
or edi, r13d
mov r13d, esi
rol r13d, 5
add r13d, r9d
add edi, r13d
- ;; size=249 bbWeight=5.00 PerfScore 151.25
-G_M42046_IG13: ; bbWeight=5.00, extend
mov r9, rbx
; gcrRegs +[r9]
mov r9d, dword ptr [r9+4*r11+0x10]
@@ -446,14 +436,14 @@ G_M42046_IG13: ; bbWeight=5.00, extend
lea r9d, [rdi+r9+D1FFAB1EH]
rol ebp, 30
mov r11d, r14d
+ ;; size=247 bbWeight=5.00 PerfScore 161.25
+G_M42046_IG13: ; bbWeight=5.00, extend
lea r14d, [r11+0x01]
- mov edi, esi
- and edi, ebp
- mov r13d, esi
- and r13d, r15d
- or edi, r13d
+ mov edi, ebp
+ and edi, r15d
mov r13d, ebp
- and r13d, r15d
+ or r13d, r15d
+ and r13d, esi
or edi, r13d
mov r13d, r9d
rol r13d, 5
@@ -464,7 +454,7 @@ G_M42046_IG13: ; bbWeight=5.00, extend
mov eax, dword ptr [rax+4*r11+0x10]
; gcrRegs -[rax]
lea eax, [rdi+rax+D1FFAB1EH]
- ;; size=76 bbWeight=5.00 PerfScore 55.00
+ ;; size=49 bbWeight=5.00 PerfScore 32.50
G_M42046_IG14: ; bbWeight=5.00, gcrefRegs=000A {rcx rbx}, byrefRegs=0000 {}, byref
rol esi, 30
dec r12d
@@ -813,13 +803,11 @@ G_M42046_IG28: ; bbWeight=0, gcrefRegs=008A {rcx rbx rdi}, byrefRegs=0000
rol r9d, 30
mov r11d, r14d
lea r14d, [r11+0x01]
- mov edi, eax
- and edi, r9d
- mov r13d, eax
- and r13d, esi
- or edi, r13d
+ mov edi, r9d
+ and edi, esi
mov r13d, r9d
- and r13d, esi
+ or r13d, esi
+ and r13d, eax
or edi, r13d
mov r13d, r15d
rol r13d, 5
@@ -834,14 +822,12 @@ G_M42046_IG28: ; bbWeight=0, gcrefRegs=008A {rcx rbx rdi}, byrefRegs=0000
rol eax, 30
mov r11d, r14d
lea r14d, [r11+0x01]
- mov edi, r15d
- and edi, eax
- mov r13d, r15d
- ; gcrRegs -[r13]
- and r13d, r9d
- or edi, r13d
+ mov edi, eax
+ and edi, r9d
mov r13d, eax
- and r13d, r9d
+ ; gcrRegs -[r13]
+ or r13d, r9d
+ and r13d, r15d
or edi, r13d
mov r13d, ebp
rol r13d, 5
@@ -856,14 +842,12 @@ G_M42046_IG28: ; bbWeight=0, gcrefRegs=008A {rcx rbx rdi}, byrefRegs=0000
rol r15d, 30
mov r11d, r14d
lea r14d, [r11+0x01]
- mov edi, ebp
- and edi, r15d
- mov r13d, ebp
- ; gcrRegs -[r13]
- and r13d, eax
- or edi, r13d
+ mov edi, r15d
+ and edi, eax
mov r13d, r15d
- and r13d, eax
+ ; gcrRegs -[r13]
+ or r13d, eax
+ and r13d, ebp
or edi, r13d
mov r13d, esi
rol r13d, 5
@@ -878,16 +862,14 @@ G_M42046_IG28: ; bbWeight=0, gcrefRegs=008A {rcx rbx rdi}, byrefRegs=0000
lea r9d, [rdi+r9+D1FFAB1EH]
rol ebp, 30
mov r11d, r14d
- ;; size=246 bbWeight=0 PerfScore 0.00
-G_M42046_IG29: ; bbWeight=0, extend
lea r14d, [r11+0x01]
- mov edi, esi
- and edi, ebp
- mov r13d, esi
- and r13d, r15d
- or edi, r13d
+ mov edi, ebp
+ and edi, r15d
mov r13d, ebp
- and r13d, r15d
+ or r13d, r15d
+ ;; size=243 bbWeight=0 PerfScore 0.00
+G_M42046_IG29: ; bbWeight=0, extend
+ and r13d, esi
or edi, r13d
mov r13d, r9d
rol r13d, 5
@@ -901,7 +883,7 @@ G_M42046_IG29: ; bbWeight=0, extend
; gcrRegs -[rax]
lea eax, [rdi+rax+D1FFAB1EH]
jmp G_M42046_IG14
- ;; size=68 bbWeight=0 PerfScore 0.00
+ ;; size=48 bbWeight=0 PerfScore 0.00
G_M42046_IG30: ; bbWeight=0, gcrefRegs=800A {rcx rbx r15}, byrefRegs=0000 {}, byref
; gcrRegs +[r15]
cmp r13d, r10d
@@ -1042,7 +1024,7 @@ G_M42046_IG38: ; bbWeight=0, gcVars=00000000000000000000000000000000 {},
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 2777, prolog size 16, PerfScore 2357.29, instruction count 756, allocated bytes for code 2777 (MethodHash=64eb5bc1) for method Xunit.Sdk.Sha1Digest:ProcessBlock():this (Tier1)
+; Total bytes of code 2725, prolog size 16, PerfScore 2344.79, instruction count 738, allocated bytes for code 2725 (MethodHash=64eb5bc1) for method Xunit.Sdk.Sha1Digest:ProcessBlock():this (Tier1)
; ============================================================
Unwind Info:-8 (-0.08%) : 701052.dasm - System.Composition.CompositionContextExtensions:SatisfyImportsInternal(System.Composition.CompositionContext,System.Object,System.Composition.Convention.AttributedModelProvider) (Tier1)
@@ -24,7 +24,7 @@
; V12 tmp2 [V12,T17] ( 3, 13.63) ref -> r13 class-hnd exact "NewObj constructor temp" <System.Composition.TypedParts.ActivationFeatures.PropertyImportSite>
; V13 tmp3 [V13,T69] ( 3, 4.54) ref -> [rbp-0x1C8] do-not-enreg[Z] must-init class-hnd EH-live "impAppendStmt" <System.Type>
;* V14 tmp4 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "spilling ret_expr" <System.Composition.Hosting.Core.CompositionContract>
-; V15 tmp5 [V15,T304] ( 2, 0 ) ref -> rsi class-hnd exact "non-inline candidate call" <System.String>
+; V15 tmp5 [V15,T303] ( 2, 0 ) ref -> rsi class-hnd exact "non-inline candidate call" <System.String>
; V16 tmp6 [V16,T286] ( 3, 0 ) ref -> rdi class-hnd exact "NewObj constructor temp" <<unknown class>>
; V17 tmp7 [V17,T85] ( 2, 4.00) ref -> r8 class-hnd single-def "dup spill" <System.Func`2[System.Reflection.MethodInfo,bool]>
;* V18 tmp8 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "impAppendStmt" <System.Reflection.MethodInfo[]>
@@ -39,12 +39,12 @@
;* V27 tmp17 [V27 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Reflection.RuntimePropertyInfo>
; V28 tmp18 [V28,T43] ( 7, 7.16) ref -> r13 "guarded devirt return temp"
;* V29 tmp19 [V29 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Reflection.RuntimePropertyInfo>
-; V30 tmp20 [V30,T321] ( 2, 0 ) ubyte -> rax "guarded devirt return temp"
+; V30 tmp20 [V30,T320] ( 2, 0 ) ubyte -> rax "guarded devirt return temp"
;* V31 tmp21 [V31 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.SZGenericArrayEnumerator`1[System.Reflection.PropertyInfo]>
;* V32 tmp22 [V32 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.SZGenericArrayEnumerator`1[System.Reflection.PropertyInfo]>
; V33 tmp23 [V33,T130] ( 3, 2.00) ref -> registers "guarded devirt return temp"
;* V34 tmp24 [V34 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "guarded devirt this exact temp" <System.Linq.Enumerable+ArrayWhereIterator`1[System.Reflection.MethodInfo]>
-; V35 tmp25 [V35,T322] ( 2, 0 ) ubyte -> rax "guarded devirt return temp"
+; V35 tmp25 [V35,T321] ( 2, 0 ) ubyte -> rax "guarded devirt return temp"
; V36 tmp26 [V36,T03] ( 16, 36.42) ref -> rsi class-hnd exact "guarded devirt this exact temp" <System.Linq.Enumerable+ArrayWhereIterator`1[System.Reflection.MethodInfo]>
;* V37 tmp27 [V37 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Linq.Enumerable+ArrayWhereIterator`1[System.Reflection.MethodInfo]>
; V38 tmp28 [V38,T83] ( 3, 4.01) ref -> r14 class-hnd exact single-def "Inlining Arg" <System.RuntimeType>
@@ -179,7 +179,7 @@
; V167 tmp157 [V167,T268] ( 5, 0.00) ref -> r12 class-hnd "Inline stloc first use temp" <System.RuntimeType>
;* V168 tmp158 [V168,T326] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V169 tmp159 [V169,T269] ( 5, 0.00) ref -> [rbp-0x1E8] class-hnd exact spill-single-def "Inline stloc first use temp" <System.RuntimeType>
-; V170 tmp160 [V170,T300] ( 3, 0 ) int -> rax "Inline stloc first use temp"
+; V170 tmp160 [V170,T322] ( 2, 0 ) int -> rax "Inline stloc first use temp"
;* V171 tmp161 [V171 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V172 tmp162 [V172,T96] ( 2, 3.85) int -> rcx
;* V173 tmp163 [V173 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
@@ -315,7 +315,7 @@
;* V303 tmp293 [V303 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V304 tmp294 [V304 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V305 tmp295 [V305 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V306 tmp296 [V306,T305] ( 2, 0 ) byref -> [rbp-0x208] spill-single-def "Inlining Arg"
+; V306 tmp296 [V306,T304] ( 2, 0 ) byref -> [rbp-0x208] spill-single-def "Inlining Arg"
;* V307 tmp297 [V307 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V308 tmp298 [V308 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V309 tmp299 [V309 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[System.Object]>
@@ -340,7 +340,7 @@
;* V328 tmp318 [V328 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V329 tmp319 [V329 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V330 tmp320 [V330 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling ret_expr" <System.Type>
-; V331 tmp321 [V331,T306] ( 2, 0 ) ref -> rsi class-hnd exact "non-inline candidate call" <System.String>
+; V331 tmp321 [V331,T305] ( 2, 0 ) ref -> rsi class-hnd exact "non-inline candidate call" <System.String>
; V332 tmp322 [V332,T291] ( 3, 0 ) ref -> rdi class-hnd exact "NewObj constructor temp" <System.Reflection.TargetException>
;* V333 tmp323 [V333 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <System.Reflection.TargetException>
; V334 tmp324 [V334,T238] ( 3, 0.00) ubyte -> rax "guarded devirt return temp"
@@ -381,11 +381,11 @@
;* V369 tmp359 [V369 ] ( 0, 0 ) struct (16) zero-ref "Inline stloc first use temp" <System.Span`1[bool]>
; V370 tmp360 [V370 ] ( 2, 0.01) ref -> [rbp-0xF0] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inlining Arg" <System.Object>
;* V371 tmp361 [V371 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[System.Object]>
-; V372 tmp362 [V372,T307] ( 2, 0.00) ref -> rdx class-hnd "impSpillSpecialSideEff" <System.Object>
+; V372 tmp362 [V372,T306] ( 2, 0.00) ref -> rdx class-hnd "impSpillSpecialSideEff" <System.Object>
; V373 tmp363 [V373,T292] ( 3, 0.00) ref -> rax class-hnd "dup spill" <System.Exception>
;* V374 tmp364 [V374 ] ( 0, 0 ) ref -> zero-ref
; V375 tmp365 [V375,T251] ( 3, 0.00) ref -> [rbp-0x228] do-not-enreg[Z] must-init class-hnd EH-live "Inline stloc first use temp" <System.Exception>
-; V376 tmp366 [V376,T301] ( 3, 0.00) int -> rax
+; V376 tmp366 [V376,T300] ( 3, 0.00) int -> rax
;* V377 tmp367 [V377 ] ( 0, 0 ) ref -> zero-ref class-hnd "impSpillSpecialSideEff" <System.Object>
; V378 tmp368 [V378,T293] ( 3, 0.00) ref -> rbx class-hnd exact "NewObj constructor temp" <<unknown class>>
;* V379 tmp369 [V379 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
@@ -397,7 +397,7 @@
;* V385 tmp375 [V385 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[bool]>
; V386 tmp376 [V386,T230] ( 2, 0.00) byref -> rbx "impAppendStmt"
;* V387 tmp377 [V387 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
-; V388 tmp378 [V388,T302] ( 3, 0 ) struct (16) [rbp-0x108] do-not-enreg[DAS] must-init defined-via-address ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[System.Reflection.ParameterInfo]>
+; V388 tmp378 [V388,T301] ( 3, 0 ) struct (16) [rbp-0x108] do-not-enreg[DAS] must-init defined-via-address ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[System.Reflection.ParameterInfo]>
;* V389 tmp379 [V389 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V390 tmp380 [V390,T281] ( 5, 0 ) ref -> rbx ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.RuntimeType>
;* V391 tmp381 [V391 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
@@ -411,7 +411,7 @@
; V399 tmp389 [V399 ] ( 3, 0.00) ubyte -> [rbp-0x110] do-not-enreg[X] must-init addr-exposed ld-addr-op "Inline stloc first use temp"
; V400 tmp390 [V400,T285] ( 4, 0.00) int -> rax "Inline stloc first use temp"
; V401 tmp391 [V401,T294] ( 3, 0 ) ref -> rcx class-hnd "dup spill" <System.Object>
-; V402 tmp392 [V402,T308] ( 2, 0 ) ref -> rbx class-hnd exact "impAppendStmt" <System.String>
+; V402 tmp392 [V402,T307] ( 2, 0 ) ref -> rbx class-hnd exact "impAppendStmt" <System.String>
;* V403 tmp393 [V403 ] ( 0, 0 ) ref -> zero-ref
;* V404 tmp394 [V404 ] ( 0, 0 ) ref -> zero-ref
;* V405 tmp395 [V405 ] ( 0, 0 ) ref -> zero-ref
@@ -487,7 +487,7 @@
; V475 tmp465 [V475,T62] ( 3, 5.13) int -> rdx "Inlining Arg"
;* V476 tmp466 [V476 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V477 tmp467 [V477 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V478 tmp468 [V478,T303] ( 3, 0 ) int -> r13 "Inline stloc first use temp"
+; V478 tmp468 [V478,T302] ( 3, 0 ) int -> r13 "Inline stloc first use temp"
;* V479 tmp469 [V479 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewArr temp" <System.Reflection.MethodInfo[]>
; V480 tmp470 [V480,T77] ( 4, 4.41) long -> r12 "Inlining Arg"
; V481 tmp471 [V481,T76] ( 4, 4.41) ref -> r13 class-hnd "Inlining Arg" <System.__Canon[]>
@@ -606,30 +606,30 @@
; V594 tmp584 [V594 ] ( 7, 1.67) int -> [rbp-0x114] do-not-enreg[X] addr-exposed "field V449._capacity (fldOffset=0x14)" P-DEP
; V595 tmp585 [V595,T18] ( 3, 13.63) ref -> rcx "arr expr"
; V596 tmp586 [V596,T19] ( 3, 13.63) int -> r11 "index expr"
-; V597 tmp587 [V597,T309] ( 2, 0 ) ref -> rcx "argument with side effect"
-; V598 tmp588 [V598,T310] ( 2, 0 ) ref -> rdx "argument with side effect"
+; V597 tmp587 [V597,T308] ( 2, 0 ) ref -> rcx "argument with side effect"
+; V598 tmp588 [V598,T309] ( 2, 0 ) ref -> rdx "argument with side effect"
; V599 tmp589 [V599,T51] ( 2, 6.46) long -> rax "Cast away GC"
;* V600 tmp590 [V600 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V601 tmp591 [V601 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V602 tmp592 [V602 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V603 tmp593 [V603 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-; V604 tmp594 [V604,T311] ( 2, 0 ) ref -> rdx "argument with side effect"
-; V605 tmp595 [V605,T312] ( 2, 0 ) ref -> rdx "argument with side effect"
-; V606 tmp596 [V606,T313] ( 2, 0 ) ref -> rdx "argument with side effect"
+; V604 tmp594 [V604,T310] ( 2, 0 ) ref -> rdx "argument with side effect"
+; V605 tmp595 [V605,T311] ( 2, 0 ) ref -> rdx "argument with side effect"
+; V606 tmp596 [V606,T312] ( 2, 0 ) ref -> rdx "argument with side effect"
; V607 tmp597 [V607,T219] ( 6, 0.00) ref -> r8 "Field obj"
; V608 tmp598 [V608,T198] ( 3, 0.01) ref -> rcx "arr expr"
; V609 tmp599 [V609,T298] ( 3, 0 ) ref -> rcx "argument with side effect"
-; V610 tmp600 [V610,T314] ( 2, 0 ) ref -> rdx "argument with side effect"
-; V611 tmp601 [V611,T315] ( 2, 0 ) ref -> rdx "argument with side effect"
+; V610 tmp600 [V610,T313] ( 2, 0 ) ref -> rdx "argument with side effect"
+; V611 tmp601 [V611,T314] ( 2, 0 ) ref -> rdx "argument with side effect"
; V612 tmp602 [V612,T277] ( 3, 0.00) ref -> rdx "arr expr"
; V613 tmp603 [V613 ] ( 6, 0.00) struct (16) [rbp-0x180] do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.Span`1[System.Object]>
; V614 tmp604 [V614,T210] ( 3, 0.00) ref -> rax "argument with side effect"
-; V615 tmp605 [V615,T316] ( 2, 0 ) ref -> rdx "argument with side effect"
-; V616 tmp606 [V616,T317] ( 2, 0 ) ref -> r14 "argument with side effect"
-; V617 tmp607 [V617,T318] ( 2, 0 ) ref -> r8 "argument with side effect"
-; V618 tmp608 [V618,T319] ( 2, 0 ) ref -> rdx "argument with side effect"
+; V615 tmp605 [V615,T315] ( 2, 0 ) ref -> rdx "argument with side effect"
+; V616 tmp606 [V616,T316] ( 2, 0 ) ref -> r14 "argument with side effect"
+; V617 tmp607 [V617,T317] ( 2, 0 ) ref -> r8 "argument with side effect"
+; V618 tmp608 [V618,T318] ( 2, 0 ) ref -> rdx "argument with side effect"
;* V619 tmp609 [V619 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-; V620 tmp610 [V620,T320] ( 2, 0 ) ref -> rdx "argument with side effect"
+; V620 tmp610 [V620,T319] ( 2, 0 ) ref -> rdx "argument with side effect"
; V621 tmp611 [V621,T52] ( 6, 6.46) ref -> rax "argument with side effect"
; V622 cse0 [V622,T150] ( 3, 1.43) long -> rdx "CSE #56: conservative"
; V623 cse1 [V623,T228] ( 3, 0.00) ref -> rax "CSE #46: conservative"
@@ -1875,12 +1875,9 @@ G_M6457_IG117: ; bbWeight=0, gcrefRegs=F0C0 {rsi rdi r12 r13 r14 r15}, by
call [rax]System.RuntimeType:get_GenericParameterAttributes():int:this
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M6457_IG119
- ;; size=31 bbWeight=0 PerfScore 0.00
+ ;; size=23 bbWeight=0 PerfScore 0.00
G_M6457_IG118: ; bbWeight=0.00, gcrefRegs=E0C0 {rsi rdi r13 r14 r15}, byrefRegs=0000 {}, byref
; gcrRegs -[r12]
mov r12, gword ptr [rbp-0x1E8]
@@ -4908,7 +4905,7 @@ G_M6457_IG389: ; bbWeight=0.00, funclet epilog, nogc, extend
ret
;; size=5 bbWeight=0.00 PerfScore 0.00
-; Total bytes of code 9836, prolog size 100, PerfScore 1014.48, instruction count 2069, allocated bytes for code 9836 (MethodHash=2134e6c6) for method System.Composition.CompositionContextExtensions:SatisfyImportsInternal(System.Composition.CompositionContext,System.Object,System.Composition.Convention.AttributedModelProvider) (Tier1)
+; Total bytes of code 9828, prolog size 100, PerfScore 1014.48, instruction count 2066, allocated bytes for code 9828 (MethodHash=2134e6c6) for method System.Composition.CompositionContextExtensions:SatisfyImportsInternal(System.Composition.CompositionContext,System.Object,System.Composition.Convention.AttributedModelProvider) (Tier1)
; ============================================================
Unwind Info:-8 (-0.08%) : 458525.dasm - Xunit.Sdk.XunitTestCaseRunner:GetBeforeAfterTestAttributes():System.Collections.Generic.List`1[Xunit.Sdk.BeforeAfterTestAttribute]:this (Tier1)
@@ -46,7 +46,7 @@
; V34 tmp31 [V34,T287] ( 6, 0 ) ref -> r15 class-hnd "Inline stloc first use temp" <System.RuntimeType>
;* V35 tmp32 [V35,T307] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V36 tmp33 [V36,T288] ( 5, 0 ) ref -> r12 class-hnd exact "Inline stloc first use temp" <System.RuntimeType>
-; V37 tmp34 [V37,T297] ( 3, 0 ) int -> rax "Inline stloc first use temp"
+; V37 tmp34 [V37,T306] ( 2, 0 ) int -> rax "Inline stloc first use temp"
;* V38 tmp35 [V38 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V39 tmp36 [V39,T145] ( 2, 2 ) int -> rcx
;* V40 tmp37 [V40 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
@@ -477,22 +477,22 @@
;* V465 tmp462 [V465,T182] ( 0, 0 ) int -> zero-ref "field V279._length (fldOffset=0x8)" P-INDEP
;* V466 tmp463 [V466 ] ( 0, 0 ) byref -> zero-ref "field V283._reference (fldOffset=0x0)" P-INDEP
;* V467 tmp464 [V467 ] ( 0, 0 ) int -> zero-ref "field V283._length (fldOffset=0x8)" P-INDEP
-; V468 tmp465 [V468,T302] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
+; V468 tmp465 [V468,T301] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
; V469 tmp466 [V469,T103] ( 2, 3.21) long -> rax "Cast away GC"
; V470 tmp467 [V470,T138] ( 3, 2.21) ref -> rax single-def "argument with side effect"
; V471 tmp468 [V471,T155] ( 2, 1.73) long -> rdx "Cast away GC"
; V472 tmp469 [V472,T76] ( 2, 4.60) long -> rcx "Cast away GC"
;* V473 tmp470 [V473 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
; V474 tmp471 [V474,T19] ( 2, 10.33) int -> rdx "argument with side effect"
-; V475 tmp472 [V475,T303] ( 2, 0 ) ref -> rdx "argument with side effect"
-; V476 tmp473 [V476,T304] ( 2, 0 ) ref -> r8 "argument with side effect"
+; V475 tmp472 [V475,T302] ( 2, 0 ) ref -> rdx "argument with side effect"
+; V476 tmp473 [V476,T303] ( 2, 0 ) ref -> r8 "argument with side effect"
; V477 tmp474 [V477,T282] ( 3, 0.01) ref -> rax "argument with side effect"
-; V478 tmp475 [V478,T305] ( 2, 0 ) ref -> rcx "argument with side effect"
-; V479 tmp476 [V479,T306] ( 2, 0 ) ref -> rdx "argument with side effect"
+; V478 tmp475 [V478,T304] ( 2, 0 ) ref -> rcx "argument with side effect"
+; V479 tmp476 [V479,T305] ( 2, 0 ) ref -> rdx "argument with side effect"
;* V480 tmp477 [V480 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-; V481 tmp478 [V481,T298] ( 3, 0 ) int -> r8 "fgMakeTemp is creating a new local variable"
-; V482 tmp479 [V482,T299] ( 3, 0 ) int -> rdx "index expr"
-; V483 tmp480 [V483,T300] ( 3, 0 ) int -> rdx "index expr"
+; V481 tmp478 [V481,T297] ( 3, 0 ) int -> r8 "fgMakeTemp is creating a new local variable"
+; V482 tmp479 [V482,T298] ( 3, 0 ) int -> rdx "index expr"
+; V483 tmp480 [V483,T299] ( 3, 0 ) int -> rdx "index expr"
; V484 tmp481 [V484,T184] ( 3, 1.11) ref -> rax single-def "argument with side effect"
; V485 tmp482 [V485,T196] ( 2, 0.98) ref -> rcx single-def "argument with side effect"
; V486 tmp483 [V486,T179] ( 2, 1.23) ref -> rcx single-def "argument with side effect"
@@ -545,7 +545,7 @@
; V533 rat17 [V533,T77] ( 5, 4.52) ref -> rbx "replacement local"
; V534 rat18 [V534,T167] ( 3, 1.51) long -> rcx "CSE for expectedClsNode"
; V535 rat19 [V535,T88] ( 5, 3.89) ref -> rbx "replacement local"
-; V536 rat20 [V536,T301] ( 3, 0 ) int -> rdx "ReplaceWithLclVar is creating a new local variable"
+; V536 rat20 [V536,T300] ( 3, 0 ) int -> rdx "ReplaceWithLclVar is creating a new local variable"
;
; Lcl frame size = 536
@@ -3310,12 +3310,9 @@ G_M61572_IG239: ; bbWeight=0, gcrefRegs=C0E0 {rbp rsi rdi r14 r15}, byref
call [System.RuntimeType:get_GenericParameterAttributes():int:this]
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M61572_IG241
- ;; size=71 bbWeight=0 PerfScore 0.00
+ ;; size=63 bbWeight=0 PerfScore 0.00
G_M61572_IG240: ; bbWeight=0, gcrefRegs=50E0 {rbp rsi rdi r12 r14}, byrefRegs=0000 {}, byref
; gcrRegs -[r15]
mov r15, r12
@@ -4561,7 +4558,7 @@ G_M61572_IG354: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 9686, prolog size 47, PerfScore 1188.71, instruction count 1954, allocated bytes for code 9686 (MethodHash=2b1d0f7b) for method Xunit.Sdk.XunitTestCaseRunner:GetBeforeAfterTestAttributes():System.Collections.Generic.List`1[Xunit.Sdk.BeforeAfterTestAttribute]:this (Tier1)
+; Total bytes of code 9678, prolog size 47, PerfScore 1188.71, instruction count 1951, allocated bytes for code 9678 (MethodHash=2b1d0f7b) for method Xunit.Sdk.XunitTestCaseRunner:GetBeforeAfterTestAttributes():System.Collections.Generic.List`1[Xunit.Sdk.BeforeAfterTestAttribute]:this (Tier1)
; ============================================================
Unwind Info:-8 (-0.12%) : 78455.dasm - System.Composition.TypedParts.ContractHelpers:GetImportInfo(System.Type,System.Object[],System.Object):System.Composition.TypedParts.ImportInfo (Tier1)
@@ -29,8 +29,8 @@
; V17 OutArgs [V17 ] ( 1, 1 ) struct (48) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <UNNAMED>
; V18 tmp1 [V18,T02] ( 5, 10 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Composition.Hosting.Core.CompositionContract>
;* V19 tmp2 [V19 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <System.Composition.TypedParts.ContractHelpers+<>c__DisplayClass2_0>
-; V20 tmp3 [V20,T179] ( 2, 0 ) ref -> r8 class-hnd "dup spill" <System.Func`2[System.Reflection.PropertyInfo,bool]>
-; V21 tmp4 [V21,T180] ( 2, 0 ) ref -> [rbp-0x148] class-hnd spill-single-def "impAppendStmt" <System.Collections.Generic.IEnumerable`1[System.Reflection.PropertyInfo]>
+; V20 tmp3 [V20,T178] ( 2, 0 ) ref -> r8 class-hnd "dup spill" <System.Func`2[System.Reflection.PropertyInfo,bool]>
+; V21 tmp4 [V21,T179] ( 2, 0 ) ref -> [rbp-0x148] class-hnd spill-single-def "impAppendStmt" <System.Collections.Generic.IEnumerable`1[System.Reflection.PropertyInfo]>
;* V22 tmp5 [V22 ] ( 0, 0 ) ref -> zero-ref
; V23 tmp6 [V23,T163] ( 4, 0 ) ref -> r8
;* V24 tmp7 [V24 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "non-inline candidate call" <System.String>
@@ -139,7 +139,7 @@
; V127 tmp110 [V127,T159] ( 5, 0 ) ref -> [rbp-0x1A8] class-hnd "Inline stloc first use temp" <System.RuntimeType>
;* V128 tmp111 [V128,T193] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V129 tmp112 [V129,T160] ( 5, 0 ) ref -> [rbp-0x1B0] class-hnd exact spill-single-def "Inline stloc first use temp" <System.RuntimeType>
-; V130 tmp113 [V130,T176] ( 3, 0 ) int -> rax "Inline stloc first use temp"
+; V130 tmp113 [V130,T191] ( 2, 0 ) int -> rax "Inline stloc first use temp"
;* V131 tmp114 [V131 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V132 tmp115 [V132,T95] ( 2, 1.52) int -> rcx
;* V133 tmp116 [V133 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
@@ -171,7 +171,7 @@
;* V159 tmp142 [V159 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling qmarkNull" <System.RuntimeType>
; V160 tmp143 [V160,T102] ( 3, 1.05) ref -> [rbp-0x1C0] class-hnd spill-single-def "Inline stloc first use temp" <System.Object[]>
;* V161 tmp144 [V161,T130] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V162 tmp145 [V162,T181] ( 2, 0 ) ref -> [rbp-0x1C8] class-hnd exact spill-single-def "impAppendStmt" <System.Reflection.RuntimeModule>
+; V162 tmp145 [V162,T180] ( 2, 0 ) ref -> [rbp-0x1C8] class-hnd exact spill-single-def "impAppendStmt" <System.Reflection.RuntimeModule>
;* V163 tmp146 [V163 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
; V164 tmp147 [V164,T164] ( 4, 0 ) ref -> [rbp-0x1D0] class-hnd spill-single-def "Inline stloc first use temp" <System.Object[]>
;* V165 tmp148 [V165 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
@@ -295,30 +295,30 @@
;* V283 tmp266 [V283 ] ( 0, 0 ) long -> zero-ref "field V237.m_asTAddr (fldOffset=0x0)" P-INDEP
; V284 tmp267 [V284,T114] ( 2, 1.05) long -> r10 "field V239.m_asTAddr (fldOffset=0x0)" P-INDEP
;* V285 tmp268 [V285 ] ( 0, 0 ) ref -> zero-ref "field V241.m_type (fldOffset=0x0)" P-INDEP
-; V286 tmp269 [V286,T177] ( 3, 0 ) int -> r8 "fgMakeTemp is creating a new local variable"
+; V286 tmp269 [V286,T176] ( 3, 0 ) int -> r8 "fgMakeTemp is creating a new local variable"
; V287 tmp270 [V287,T138] ( 3, 0.17) int -> rcx "index expr"
; V288 tmp271 [V288,T139] ( 3, 0.17) int -> rcx "index expr"
; V289 tmp272 [V289,T44] ( 2, 2.41) long -> rax "Cast away GC"
-; V290 tmp273 [V290,T182] ( 2, 0 ) ref -> rcx "argument with side effect"
-; V291 tmp274 [V291,T183] ( 2, 0 ) ref -> rdx "argument with side effect"
+; V290 tmp273 [V290,T181] ( 2, 0 ) ref -> rcx "argument with side effect"
+; V291 tmp274 [V291,T182] ( 2, 0 ) ref -> rdx "argument with side effect"
;* V292 tmp275 [V292 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V293 tmp276 [V293 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-; V294 tmp277 [V294,T184] ( 2, 0 ) ref -> r8 "argument with side effect"
+; V294 tmp277 [V294,T183] ( 2, 0 ) ref -> r8 "argument with side effect"
; V295 tmp278 [V295 ] ( 2, 2.39) struct (24) [rbp-0xC8] do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.RuntimeType+ListBuilder`1[System.Object]>
; V296 tmp279 [V296,T46] ( 2, 2.39) int -> r8 "argument with side effect"
-; V297 tmp280 [V297,T185] ( 2, 0 ) ref -> r8 "argument with side effect"
+; V297 tmp280 [V297,T184] ( 2, 0 ) ref -> r8 "argument with side effect"
; V298 tmp281 [V298,T142] ( 3, 0.11) ref -> rax "argument with side effect"
; V299 tmp282 [V299,T153] ( 3, 0.00) ref -> rax "argument with side effect"
; V300 tmp283 [V300,T150] ( 2, 0.00) ref -> r8 "argument with side effect"
; V301 tmp284 [V301,T192] ( 2, 0 ) int -> rdx "argument with side effect"
;* V302 tmp285 [V302 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-; V303 tmp286 [V303,T186] ( 2, 0 ) ref -> rcx "argument with side effect"
-; V304 tmp287 [V304,T187] ( 2, 0 ) ref -> rcx "argument with side effect"
-; V305 tmp288 [V305,T188] ( 2, 0 ) ref -> [rbp-0x228] spill-single-def "argument with side effect"
-; V306 tmp289 [V306,T189] ( 2, 0 ) ref -> r8 "argument with side effect"
+; V303 tmp286 [V303,T185] ( 2, 0 ) ref -> rcx "argument with side effect"
+; V304 tmp287 [V304,T186] ( 2, 0 ) ref -> rcx "argument with side effect"
+; V305 tmp288 [V305,T187] ( 2, 0 ) ref -> [rbp-0x228] spill-single-def "argument with side effect"
+; V306 tmp289 [V306,T188] ( 2, 0 ) ref -> r8 "argument with side effect"
; V307 tmp290 [V307,T121] ( 2, 0.94) ref -> rdx "argument with side effect"
-; V308 tmp291 [V308,T190] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
-; V309 tmp292 [V309,T191] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V308 tmp291 [V308,T189] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
+; V309 tmp292 [V309,T190] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
; V310 cse0 [V310,T36] ( 3, 2.28) ref -> [rbp-0x230] spill-single-def "CSE #17: conservative"
; V311 cse1 [V311,T146] ( 3, 0.01) byref -> [rbp-0x238] spill-single-def "CSE #09: conservative"
; V312 cse2 [V312,T145] ( 3, 0.01) long -> rdx "CSE #08: conservative"
@@ -343,7 +343,7 @@
; V331 rat9 [V331,T23] ( 5, 3.66) ref -> rax "replacement local"
; V332 rat10 [V332,T24] ( 4, 3.66) ref -> rcx "replacement local"
; V333 rat11 [V333,T112] ( 3, 1.05) long -> rax "CSE for expectedClsNode"
-; V334 rat12 [V334,T178] ( 3, 0 ) int -> rdx "ReplaceWithLclVar is creating a new local variable"
+; V334 rat12 [V334,T177] ( 3, 0 ) int -> rdx "ReplaceWithLclVar is creating a new local variable"
;
; Lcl frame size = 568
@@ -2014,12 +2014,9 @@ G_M55359_IG133: ; bbWeight=0, gcVars=000000000000000000000800800000000000
call [System.RuntimeType:get_GenericParameterAttributes():int:this]
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M55359_IG135
- ;; size=90 bbWeight=0 PerfScore 0.00
+ ;; size=82 bbWeight=0 PerfScore 0.00
G_M55359_IG134: ; bbWeight=0, gcVars=000000000000000000000801000000000000000002000000000000020E200000 {V02 V07 V09 V10 V104 V126 V129 V321}, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, gcvars, byref
; GC ptr vars -{V127}
mov rcx, gword ptr [rbp-0x1B0]
@@ -2651,7 +2648,7 @@ G_M55359_IG177: ; bbWeight=0, gcVars=000000000000000000000000000000000000
mov rax, gword ptr [rbp-0x148]
; gcrRegs +[rax]
;; size=139 bbWeight=0 PerfScore 0.00
-G_M55359_IG178: ; bbWeight=0, gcVars=0000000000000000001000000000000000000000000000000000000208208041 {V00 V02 V03 V04 V07 V09 V21}, gcrefRegs=0101 {rax r8}, byrefRegs=0000 {}, gcvars, byref
+G_M55359_IG178: ; bbWeight=0, gcVars=0000000000000000000800000000000000000000000000000000000208208041 {V00 V02 V03 V04 V07 V09 V21}, gcrefRegs=0101 {rax r8}, byrefRegs=0000 {}, gcvars, byref
; GC ptr vars -{V26}
mov rdx, rax
; gcrRegs +[rdx]
@@ -2752,16 +2749,16 @@ G_M55359_IG181: ; bbWeight=0, gcVars=000000000000000000000000300000000000
; gcrRegs +[rax]
jmp SHORT G_M55359_IG180
;; size=9 bbWeight=0 PerfScore 0.00
-G_M55359_IG182: ; bbWeight=0, gcVars=0000000000000000001000000000000000000000000000000000000208208041 {V00 V02 V03 V04 V07 V09 V21}, gcrefRegs=0100 {r8}, byrefRegs=0000 {}, gcvars, byref
+G_M55359_IG182: ; bbWeight=0, gcVars=0000000000000000000800000000000000000000000000000000000208208041 {V00 V02 V03 V04 V07 V09 V21}, gcrefRegs=0100 {r8}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rax r15] +[r8]
- ; GC ptr vars -{V14 V16} +{V00 V04 V21 V180}
+ ; GC ptr vars -{V14 V16} +{V00 V04 V21 V179}
mov rax, gword ptr [rbp-0x148]
; gcrRegs +[rax]
jmp G_M55359_IG178
;; size=12 bbWeight=0 PerfScore 0.00
G_M55359_IG183: ; bbWeight=0, gcVars=0000000000000000000000001000000000000000000000000000000008208041 {V00 V02 V03 V04 V07 V14}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rax r8]
- ; GC ptr vars -{V09 V21 V180} +{V14 V156}
+ ; GC ptr vars -{V09 V21 V179} +{V14 V156}
mov rcx, gword ptr [rbp-0x138]
; gcrRegs +[rcx]
mov r11, 0xD1FFAB1E ; code for <unknown method>
@@ -2946,7 +2943,7 @@ G_M55359_IG198: ; bbWeight=0.00, funclet epilog, nogc, extend
ret
;; size=5 bbWeight=0.00 PerfScore 0.00
-; Total bytes of code 6451, prolog size 72, PerfScore 381.79, instruction count 1292, allocated bytes for code 6451 (MethodHash=54e927c0) for method System.Composition.TypedParts.ContractHelpers:GetImportInfo(System.Type,System.Object[],System.Object):System.Composition.TypedParts.ImportInfo (Tier1)
+; Total bytes of code 6443, prolog size 72, PerfScore 381.79, instruction count 1289, allocated bytes for code 6443 (MethodHash=54e927c0) for method System.Composition.TypedParts.ContractHelpers:GetImportInfo(System.Type,System.Object[],System.Object):System.Composition.TypedParts.ImportInfo (Tier1)
; ============================================================
Unwind Info:-8 (-0.13%) : 695252.dasm - Xunit.Sdk.TypeUtility:ResolveMethodArguments(System.Reflection.MethodBase,System.Object[]):System.Object[] (Tier1)
@@ -18,7 +18,7 @@
; V06 loc4 [V06,T75] ( 4, 1.95) int -> rdi
; V07 loc5 [V07,T65] ( 7, 2.07) int -> rbx single-def
; V08 loc6 [V08,T154] ( 4, 0 ) ref -> r15 class-hnd single-def <System.Type>
-; V09 loc7 [V09,T187] ( 2, 0 ) ref -> rax class-hnd single-def <System.Array>
+; V09 loc7 [V09,T186] ( 2, 0 ) ref -> rax class-hnd single-def <System.Array>
; V10 loc8 [V10,T181] ( 3, 0 ) int -> rdi single-def
; V11 loc9 [V11,T155] ( 4, 0 ) ref -> r15 class-hnd single-def <System.Array>
;* V12 loc10 [V12,T101] ( 0, 0 ) int -> zero-ref
@@ -38,11 +38,11 @@
;* V26 tmp11 [V26 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V27 tmp12 [V27 ] ( 0, 0 ) ref -> zero-ref class-hnd "impSpillSpecialSideEff" <<unknown class>>
; V28 tmp13 [V28,T167] ( 3, 0.00) ref -> r15 class-hnd exact single-def "NewArr temp" <System.Object[]>
-; V29 tmp14 [V29,T188] ( 2, 0.00) ref -> rsi class-hnd single-def "impAppendStmt" <<unknown class>>
-; V30 tmp15 [V30,T189] ( 2, 0.00) ref -> rax class-hnd exact single-def "Strict ordering of exceptions for Array store" <System.String>
+; V29 tmp14 [V29,T187] ( 2, 0.00) ref -> rsi class-hnd single-def "impAppendStmt" <<unknown class>>
+; V30 tmp15 [V30,T188] ( 2, 0.00) ref -> rax class-hnd exact single-def "Strict ordering of exceptions for Array store" <System.String>
; V31 tmp16 [V31,T168] ( 3, 0.00) ref -> rdi class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
; V32 tmp17 [V32,T182] ( 3, 0 ) int -> rcx "Strict ordering of exceptions for Array store"
-; V33 tmp18 [V33,T190] ( 2, 0 ) ref -> rdx class-hnd single-def "Strict ordering of exceptions for Array store" <System.Object>
+; V33 tmp18 [V33,T189] ( 2, 0 ) ref -> rdx class-hnd single-def "Strict ordering of exceptions for Array store" <System.Object>
;* V34 tmp19 [V34 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewArr temp" <int[]>
; V35 tmp20 [V35,T135] ( 5, 0.00) ref -> rsi class-hnd exact single-def "NewObj constructor temp" <System.Func`2[System.Reflection.ParameterInfo,bool]>
; V36 tmp21 [V36,T66] ( 4, 2.00) ref -> r14 "guarded devirt return temp"
@@ -65,14 +65,14 @@
; V53 tmp38 [V53,T129] ( 4, 0.00) ref -> r8
;* V54 tmp39 [V54 ] ( 0, 0 ) ref -> zero-ref
;* V55 tmp40 [V55 ] ( 0, 0 ) ref -> zero-ref single-def
-; V56 tmp41 [V56,T201] ( 2, 0 ) int -> r15 single-def
+; V56 tmp41 [V56,T200] ( 2, 0 ) int -> r15 single-def
;* V57 tmp42 [V57 ] ( 0, 0 ) ref -> zero-ref single-def
;* V58 tmp43 [V58 ] ( 0, 0 ) int -> zero-ref single-def
;* V59 tmp44 [V59 ] ( 0, 0 ) ref -> zero-ref single-def
;* V60 tmp45 [V60 ] ( 0, 0 ) ref -> zero-ref single-def
;* V61 tmp46 [V61 ] ( 0, 0 ) int -> zero-ref single-def
;* V62 tmp47 [V62 ] ( 0, 0 ) ref -> zero-ref single-def
-; V63 tmp48 [V63,T202] ( 2, 0 ) int -> r9 single-def
+; V63 tmp48 [V63,T201] ( 2, 0 ) int -> r9 single-def
; V64 tmp49 [V64,T24] ( 5, 7.81) int -> rbx "Inlining Arg"
; V65 tmp50 [V65,T33] ( 6, 5.86) long -> r15 single-def "Inline stloc first use temp"
; V66 tmp51 [V66,T73] ( 3, 1.95) long -> r8 single-def "Inline stloc first use temp"
@@ -92,7 +92,7 @@
;* V80 tmp65 [V80 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Reflection.RuntimeParameterInfo>
;* V81 tmp66 [V81 ] ( 0, 0 ) ref -> zero-ref "guarded devirt return temp"
;* V82 tmp67 [V82 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Reflection.RuntimeParameterInfo>
-; V83 tmp68 [V83,T203] ( 2, 0 ) int -> rax "guarded devirt return temp"
+; V83 tmp68 [V83,T202] ( 2, 0 ) int -> rax "guarded devirt return temp"
;* V84 tmp69 [V84 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Reflection.RuntimeMethodInfo>
; V85 tmp70 [V85,T171] ( 3, 0 ) ref -> rax "guarded devirt return temp"
;* V86 tmp71 [V86 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "guarded devirt arg temp" <System.RuntimeType>
@@ -101,11 +101,11 @@
;* V89 tmp74 [V89,T98] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.RuntimeType>
; V90 tmp75 [V90,T54] ( 6, 3.27) ref -> rcx class-hnd "Inline stloc first use temp" <System.RuntimeType>
; V91 tmp76 [V91,T68] ( 4, 2.00) ref -> rcx class-hnd "Inline return value spill temp" <System.RuntimeType>
-; V92 tmp77 [V92,T142] ( 3, 0.00) ref -> rax class-hnd single-def "Inline stloc first use temp" <System.Type[]>
+; V92 tmp77 [V92,T143] ( 3, 0.00) ref -> rax class-hnd single-def "Inline stloc first use temp" <System.Type[]>
; V93 tmp78 [V93,T138] ( 6, 0.00) ref -> r13 class-hnd "Inline stloc first use temp" <System.RuntimeType>
;* V94 tmp79 [V94,T208] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V95 tmp80 [V95,T139] ( 5, 0.00) ref -> [rbp-0x120] class-hnd exact spill-single-def "Inline stloc first use temp" <System.RuntimeType>
-; V96 tmp81 [V96,T183] ( 3, 0 ) int -> rax "Inline stloc first use temp"
+; V96 tmp81 [V96,T203] ( 2, 0 ) int -> rax "Inline stloc first use temp"
;* V97 tmp82 [V97 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V98 tmp83 [V98,T69] ( 2, 2.00) int -> rcx
;* V99 tmp84 [V99 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
@@ -227,12 +227,12 @@
;* V215 tmp200 [V215 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[System.Reflection.ParameterInfo]>
; V216 tmp201 [V216,T176] ( 3, 0 ) ref -> rcx class-hnd "Inline stloc first use temp" <System.Type[]>
; V217 tmp202 [V217,T164] ( 4, 0 ) int -> rdx "Inline stloc first use temp"
-; V218 tmp203 [V218,T145] ( 2, 0.00) ref -> rdx class-hnd exact single-def "Inlining Arg" <Xunit.Sdk.TypeUtility+<>c>
+; V218 tmp203 [V218,T140] ( 2, 0.00) ref -> rdx class-hnd exact single-def "Inlining Arg" <Xunit.Sdk.TypeUtility+<>c>
;* V219 tmp204 [V219 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V220 tmp205 [V220 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inlining Arg" <<unknown class>>
; V221 tmp206 [V221,T50] ( 7, 3.64) ref -> rsi class-hnd single-def "Inlining Arg" <System.Func`2[System.Reflection.ParameterInfo,bool]>
; V222 tmp207 [V222,T16] ( 9, 13.59) int -> rdi "Inline stloc first use temp"
-; V223 tmp208 [V223,T184] ( 3, 0 ) struct (16) [rbp-0x70] do-not-enreg[DAS] must-init defined-via-address ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[System.Reflection.ParameterInfo]>
+; V223 tmp208 [V223,T183] ( 3, 0 ) struct (16) [rbp-0x70] do-not-enreg[DAS] must-init defined-via-address ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[System.Reflection.ParameterInfo]>
; V224 tmp209 [V224,T148] ( 6, 0.00) ref -> [rbp-0x150] class-hnd EH-live single-def "Inline stloc first use temp" <<unknown class>>
;* V225 tmp210 [V225 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Reflection.ParameterInfo>
;* V226 tmp211 [V226 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[System.Reflection.ParameterInfo]>
@@ -253,12 +253,12 @@
;* V241 tmp226 [V241 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V242 tmp227 [V242 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V243 tmp228 [V243 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V244 tmp229 [V244,T191] ( 2, 0 ) byref -> r12 single-def "Inlining Arg"
+; V244 tmp229 [V244,T190] ( 2, 0 ) byref -> r12 single-def "Inlining Arg"
;* V245 tmp230 [V245 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V246 tmp231 [V246 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
; V247 tmp232 [V247,T19] ( 6, 10.74) int -> rax "guarded devirt return temp"
;* V248 tmp233 [V248 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "guarded devirt this exact temp" <System.Reflection.RuntimeParameterInfo>
-; V249 tmp234 [V249,T192] ( 2, 0 ) ref -> rcx class-hnd exact single-def "Inlining Arg" <System.RuntimeType>
+; V249 tmp234 [V249,T191] ( 2, 0 ) ref -> rcx class-hnd exact single-def "Inlining Arg" <System.RuntimeType>
;* V250 tmp235 [V250 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.RuntimeType>
;* V251 tmp236 [V251 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V252 tmp237 [V252,T115] ( 4, 0.12) ref -> [rbp-0x158] class-hnd "Inline stloc first use temp" <System.RuntimeType>
@@ -267,7 +267,7 @@
;* V255 tmp240 [V255 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V256 tmp241 [V256 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V257 tmp242 [V257 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Type>
-; V258 tmp243 [V258,T193] ( 2, 0 ) ref -> rax class-hnd "dup spill" <System.Object>
+; V258 tmp243 [V258,T192] ( 2, 0 ) ref -> rax class-hnd "dup spill" <System.Object>
; V259 tmp244 [V259,T161] ( 4, 0 ) ref -> rdx
; V260 tmp245 [V260,T09] ( 3, 20.60) ref -> [rbp-0x160] class-hnd exact spill-single-def "Inlining Arg" <System.RuntimeType>
; V261 tmp246 [V261,T03] ( 6, 30.89) ref -> rcx class-hnd "impAppendStmt" <System.Reflection.TypeInfo>
@@ -304,7 +304,7 @@
;* V292 tmp277 [V292 ] ( 0, 0 ) byref -> zero-ref single-def "field V203._reference (fldOffset=0x0)" P-INDEP
;* V293 tmp278 [V293 ] ( 0, 0 ) int -> zero-ref single-def "field V203._length (fldOffset=0x8)" P-INDEP
; V294 tmp279 [V294,T178] ( 3, 0 ) byref -> rcx "field V215._reference (fldOffset=0x0)" P-INDEP
-; V295 tmp280 [V295,T185] ( 3, 0 ) int -> rdx "field V215._length (fldOffset=0x8)" P-INDEP
+; V295 tmp280 [V295,T184] ( 3, 0 ) int -> rdx "field V215._length (fldOffset=0x8)" P-INDEP
; V296 tmp281 [V296,T29] ( 3, 6.35) byref -> r13 single-def "field V226._reference (fldOffset=0x0)" P-INDEP
; V297 tmp282 [V297,T61] ( 4, 2.78) int -> r12 single-def "field V226._length (fldOffset=0x8)" P-INDEP
;* V298 tmp283 [V298 ] ( 0, 0 ) byref -> zero-ref "field V233._reference (fldOffset=0x0)" P-INDEP
@@ -320,24 +320,24 @@
; V308 tmp293 [V308,T74] ( 4, 1.95) byref -> r13 "V223.[000..008)"
; V309 tmp294 [V309,T76] ( 4, 1.95) int -> r12 "V223.[008..012)"
; V310 tmp295 [V310,T53] ( 2, 3.36) long -> rax "Cast away GC"
-; V311 tmp296 [V311,T194] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V311 tmp296 [V311,T193] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
; V312 tmp297 [V312,T118] ( 2, 0.10) ref -> rdx single-def "argument with side effect"
;* V313 tmp298 [V313 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
; V314 tmp299 [V314 ] ( 2, 3.90) struct (16) [rbp-0xB8] do-not-enreg[XS] addr-exposed "by-value struct argument" <System.Runtime.CompilerServices.QCallTypeHandle>
; V315 tmp300 [V315,T130] ( 3, 0.00) ref -> rax single-def "argument with side effect"
; V316 tmp301 [V316,T206] ( 2, 0 ) long -> rdx "argument with side effect"
-; V317 tmp302 [V317,T195] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
-; V318 tmp303 [V318,T196] ( 2, 0 ) ref -> r8 "argument with side effect"
+; V317 tmp302 [V317,T194] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V318 tmp303 [V318,T195] ( 2, 0 ) ref -> r8 "argument with side effect"
; V319 tmp304 [V319 ] ( 3, 0 ) struct (16) [rbp-0xC8] do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.Span`1[System.Reflection.ParameterInfo]>
-; V320 tmp305 [V320,T197] ( 2, 0 ) ref -> rdx "argument with side effect"
+; V320 tmp305 [V320,T196] ( 2, 0 ) ref -> rdx "argument with side effect"
; V321 tmp306 [V321,T179] ( 3, 0 ) ref -> rcx single-def "argument with side effect"
; V322 tmp307 [V322,T180] ( 3, 0 ) ref -> rax single-def "argument with side effect"
; V323 tmp308 [V323,T207] ( 2, 0 ) int -> rdx "argument with side effect"
-; V324 tmp309 [V324,T198] ( 2, 0.00) ref -> rdx single-def "argument with side effect"
-; V325 tmp310 [V325,T199] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V324 tmp309 [V324,T197] ( 2, 0.00) ref -> rdx single-def "argument with side effect"
+; V325 tmp310 [V325,T198] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
; V326 tmp311 [V326,T112] ( 3, 0.24) ref -> rax "arr expr"
; V327 tmp312 [V327,T113] ( 3, 0.24) int -> rcx "index expr"
-; V328 tmp313 [V328,T200] ( 2, 0 ) ref -> r8 single-def "argument with side effect"
+; V328 tmp313 [V328,T199] ( 2, 0 ) ref -> r8 single-def "argument with side effect"
;* V329 tmp314 [V329 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
; V330 cse0 [V330,T26] ( 2, 7.14) int -> r15 hoist "CSE #54: conservative"
; V331 cse1 [V331,T57] ( 6, 2.92) long -> rdi "CSE #17: conservative"
@@ -352,9 +352,9 @@
; V340 cse10 [V340,T15] ( 19, 15.04) int -> registers multi-def "CSE #03: moderate"
; V341 cse11 [V341,T05] ( 20, 28.03) long -> [rbp-0xE0] multi-def "CSE #13: aggressive"
; V342 cse12 [V342,T124] ( 4, 0.05) long -> rcx multi-def "CSE #11: conservative"
-; V343 cse13 [V343,T143] ( 3, 0.00) ref -> r15 "CSE #08: conservative"
-; V344 rat0 [V344,T140] ( 4, 0.00) byref -> [rbp-0x170] "Strength reduced derived IV"
-; V345 rat1 [V345,T141] ( 4, 0.00) int -> r12 "Trip count IV"
+; V343 cse13 [V343,T144] ( 3, 0.00) ref -> r15 "CSE #08: conservative"
+; V344 rat0 [V344,T141] ( 4, 0.00) byref -> [rbp-0x170] "Strength reduced derived IV"
+; V345 rat1 [V345,T142] ( 4, 0.00) int -> r12 "Trip count IV"
; V346 rat2 [V346,T104] ( 4, 0.97) long -> [rbp-0xE8] "Strength reduced derived IV"
; V347 rat3 [V347,T46] ( 4, 3.90) int -> [rbp-0xEC] "Trip count IV"
; V348 rat4 [V348,T149] ( 6, 0 ) long -> rdi "Widened IV V126"
@@ -365,9 +365,9 @@
; V353 rat9 [V353,T11] ( 4, 16.89) long -> rsi "Strength reduced derived IV"
; V354 rat10 [V354,T12] ( 4, 16.89) int -> r12 "Trip count IV"
; V355 rat11 [V355,T00] ( 10, 48.64) long -> rdi "Widened IV V12"
-; V356 rat12 [V356,T144] ( 3, 0.00) ref -> rdx "Spilling to split statement for tree"
+; V356 rat12 [V356,T145] ( 3, 0.00) ref -> rdx "Spilling to split statement for tree"
; V357 rat13 [V357,T137] ( 4, 0.00) ref -> r8 "replacement local"
-; V358 rat14 [V358,T186] ( 3, 0.00) long -> rcx "CSE for expectedClsNode"
+; V358 rat14 [V358,T185] ( 3, 0.00) long -> rcx "CSE for expectedClsNode"
; V359 rat15 [V359,T27] ( 5, 6.82) ref -> rbx "replacement local"
; V360 rat16 [V360,T126] ( 4, 0.01) ref -> rdi "replacement local"
; V361 rat17 [V361,T133] ( 3, 0.00) long -> rcx "CSE for expectedClsNode"
@@ -1427,7 +1427,7 @@ G_M23118_IG109: ; bbWeight=0.00, gcrefRegs=A088 {rbx rdi r13 r15}, byrefR
test r8, r8
je SHORT G_M23118_IG112
;; size=18 bbWeight=0.00 PerfScore 0.00
-G_M23118_IG110: ; bbWeight=0.00, gcVars=0000000000000000000000000000100000000000000000000000000000020440 {V01 V02 V71 V344}, gcrefRegs=A18C {rdx rbx rdi r8 r13 r15}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M23118_IG110: ; bbWeight=0.00, gcVars=0000000000000000000000000000200000000000000000000000000000020440 {V01 V02 V71 V344}, gcrefRegs=A18C {rdx rbx rdi r8 r13 r15}, byrefRegs=0000 {}, gcvars, byref, isz
; byrRegs -[rax]
; GC ptr vars -{V06 V10}
mov rcx, 0xD1FFAB1E ; System.RuntimeType
@@ -1442,7 +1442,7 @@ G_M23118_IG111: ; bbWeight=0, gcVars=000000000000000000000000000000000000
; gcr arg pop 0
int3
;; size=6 bbWeight=0 PerfScore 0.00
-G_M23118_IG112: ; bbWeight=0.00, gcVars=0000000000000000000000000000100000000000000000000000000000020440 {V01 V02 V71 V344}, gcrefRegs=A188 {rbx rdi r8 r13 r15}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M23118_IG112: ; bbWeight=0.00, gcVars=0000000000000000000000000000200000000000000000000000000000020440 {V01 V02 V71 V344}, gcrefRegs=A188 {rbx rdi r8 r13 r15}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[rbx rdi r8 r13 r15]
; GC ptr vars +{V01 V02 V06 V10 V71 V344}
mov rdx, r8
@@ -1475,18 +1475,15 @@ G_M23118_IG113: ; bbWeight=0, gcrefRegs=A088 {rbx rdi r13 r15}, byrefRegs
call [rax]System.RuntimeType:get_GenericParameterAttributes():int:this
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M23118_IG115
- ;; size=31 bbWeight=0 PerfScore 0.00
+ ;; size=23 bbWeight=0 PerfScore 0.00
G_M23118_IG114: ; bbWeight=0.00, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, byref
; gcrRegs -[r13]
mov r13, gword ptr [rbp-0x120]
; gcrRegs +[r13]
;; size=7 bbWeight=0.00 PerfScore 0.00
-G_M23118_IG115: ; bbWeight=0.00, gcVars=0000000000000000000000000000100000000000000000000000000000020440 {V01 V02 V71 V344}, gcrefRegs=A088 {rbx rdi r13 r15}, byrefRegs=0000 {}, gcvars, byref
+G_M23118_IG115: ; bbWeight=0.00, gcVars=0000000000000000000000000000200000000000000000000000000000020440 {V01 V02 V71 V344}, gcrefRegs=A088 {rbx rdi r13 r15}, byrefRegs=0000 {}, gcvars, byref
; GC ptr vars -{V95}
mov rax, bword ptr [rbp-0x170]
; byrRegs +[rax]
@@ -3063,7 +3060,7 @@ G_M23118_IG224: ; bbWeight=0.00, funclet epilog, nogc, extend
ret
;; size=5 bbWeight=0.00 PerfScore 0.00
-; Total bytes of code 6104, prolog size 74, PerfScore 621.30, instruction count 1360, allocated bytes for code 6104 (MethodHash=5019a5b1) for method Xunit.Sdk.TypeUtility:ResolveMethodArguments(System.Reflection.MethodBase,System.Object[]):System.Object[] (Tier1)
+; Total bytes of code 6096, prolog size 74, PerfScore 621.30, instruction count 1357, allocated bytes for code 6096 (MethodHash=5019a5b1) for method Xunit.Sdk.TypeUtility:ResolveMethodArguments(System.Reflection.MethodBase,System.Object[]):System.Object[] (Tier1)
; ============================================================
Unwind Info:-8 (-0.21%) : 77749.dasm - Xunit.Sdk.ReflectionAttributeInfo+<>c:<GetAttributeUsage>b__12_0(System.Type):System.AttributeUsageAttribute:this (Tier1)
@@ -36,7 +36,7 @@
; V24 tmp22 [V24,T120] ( 6, 0 ) ref -> r14 class-hnd "Inline stloc first use temp" <System.RuntimeType>
;* V25 tmp23 [V25,T137] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V26 tmp24 [V26,T121] ( 5, 0 ) ref -> r13 class-hnd exact "Inline stloc first use temp" <System.RuntimeType>
-; V27 tmp25 [V27,T128] ( 3, 0 ) int -> rax "Inline stloc first use temp"
+; V27 tmp25 [V27,T134] ( 2, 0 ) int -> rax "Inline stloc first use temp"
;* V28 tmp26 [V28 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V29 tmp27 [V29,T65] ( 2, 2 ) int -> rcx
;* V30 tmp28 [V30 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
@@ -68,7 +68,7 @@
;* V56 tmp54 [V56 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling qmarkNull" <System.RuntimeType>
; V57 tmp55 [V57,T73] ( 3, 1.38) ref -> rsi class-hnd single-def "Inline stloc first use temp" <System.Object[]>
;* V58 tmp56 [V58,T104] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V59 tmp57 [V59,T129] ( 2, 0 ) ref -> rsi class-hnd exact single-def "impAppendStmt" <System.Reflection.RuntimeModule>
+; V59 tmp57 [V59,T128] ( 2, 0 ) ref -> rsi class-hnd exact single-def "impAppendStmt" <System.Reflection.RuntimeModule>
;* V60 tmp58 [V60 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
; V61 tmp59 [V61,T123] ( 4, 0 ) ref -> rsi class-hnd single-def "Inline stloc first use temp" <System.Object[]>
;* V62 tmp60 [V62 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
@@ -231,20 +231,20 @@
; V219 tmp217 [V219,T54] ( 4, 2.07) ref -> rcx single-def "field V126.m_type (fldOffset=0x0)" P-INDEP
;* V220 tmp218 [V220 ] ( 0, 0 ) ref -> zero-ref single-def "field V128.m_type (fldOffset=0x0)" P-INDEP
; V221 tmp219 [V221,T25] ( 2, 3.18) long -> rax "Cast away GC"
-; V222 tmp220 [V222,T130] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
-; V223 tmp221 [V223,T131] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V222 tmp220 [V222,T129] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
+; V223 tmp221 [V223,T130] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
;* V224 tmp222 [V224 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
;* V225 tmp223 [V225 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
-; V226 tmp224 [V226,T132] ( 2, 0 ) ref -> r8 "argument with side effect"
+; V226 tmp224 [V226,T131] ( 2, 0 ) ref -> r8 "argument with side effect"
; V227 tmp225 [V227 ] ( 2, 3.14) struct (24) [rbp-0x88] do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.RuntimeType+ListBuilder`1[System.Object]>
; V228 tmp226 [V228,T27] ( 2, 3.14) int -> r8 "argument with side effect"
-; V229 tmp227 [V229,T133] ( 2, 0 ) ref -> r8 single-def "argument with side effect"
+; V229 tmp227 [V229,T132] ( 2, 0 ) ref -> r8 single-def "argument with side effect"
; V230 tmp228 [V230,T114] ( 3, 0.15) ref -> rax single-def "argument with side effect"
; V231 tmp229 [V231,T119] ( 3, 0.00) ref -> rax single-def "argument with side effect"
; V232 tmp230 [V232,T118] ( 2, 0.00) ref -> r8 "argument with side effect"
; V233 tmp231 [V233,T136] ( 2, 0 ) int -> rdx "argument with side effect"
;* V234 tmp232 [V234 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
-; V235 tmp233 [V235,T134] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
+; V235 tmp233 [V235,T133] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
; V236 tmp234 [V236,T30] ( 3, 3.09) ref -> rcx "arr expr"
; V237 tmp235 [V237,T57] ( 2, 2.06) ref -> r8 "argument with side effect"
;* V238 tmp236 [V238 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
@@ -1383,12 +1383,9 @@ G_M35716_IG112: ; bbWeight=0, gcrefRegs=40C8 {rbx rsi rdi r14}, byrefRegs
call [System.RuntimeType:get_GenericParameterAttributes():int:this]
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M35716_IG114
- ;; size=71 bbWeight=0 PerfScore 0.00
+ ;; size=63 bbWeight=0 PerfScore 0.00
G_M35716_IG113: ; bbWeight=0, gcrefRegs=20C8 {rbx rsi rdi r13}, byrefRegs=0000 {}, byref
; gcrRegs -[r14]
mov r14, r13
@@ -1930,7 +1927,7 @@ G_M35716_IG163: ; bbWeight=0.02, funclet epilog, nogc, extend
ret
;; size=5 bbWeight=0.02 PerfScore 0.02
-; Total bytes of code 3781, prolog size 57, PerfScore 257.10, instruction count 814, allocated bytes for code 3781 (MethodHash=c896747b) for method Xunit.Sdk.ReflectionAttributeInfo+<>c:<GetAttributeUsage>b__12_0(System.Type):System.AttributeUsageAttribute:this (Tier1)
+; Total bytes of code 3773, prolog size 57, PerfScore 257.10, instruction count 811, allocated bytes for code 3773 (MethodHash=c896747b) for method Xunit.Sdk.ReflectionAttributeInfo+<>c:<GetAttributeUsage>b__12_0(System.Type):System.AttributeUsageAttribute:this (Tier1)
; ============================================================
Unwind Info:-8 (-0.23%) : 670135.dasm - System.Text.Json.Serialization.Converters.EnumConverter`1[int]:ResolveEnumFields(System.Text.Json.JsonNamingPolicy):System.Text.Json.Serialization.Converters.EnumConverter`1+EnumFieldInfo[int][] (Tier1)
@@ -303,7 +303,7 @@
; V291 tmp276 [V291,T117] ( 5, 0 ) ref -> [rsp+0x58] class-hnd "Inline stloc first use temp" <System.RuntimeType>
;* V292 tmp277 [V292,T131] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V293 tmp278 [V293,T118] ( 5, 0 ) ref -> [rsp+0x50] class-hnd exact spill-single-def "Inline stloc first use temp" <System.RuntimeType>
-; V294 tmp279 [V294,T125] ( 3, 0 ) int -> rax "Inline stloc first use temp"
+; V294 tmp279 [V294,T127] ( 2, 0 ) int -> rax "Inline stloc first use temp"
;* V295 tmp280 [V295 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V296 tmp281 [V296,T47] ( 2, 4.00) int -> rcx
;* V297 tmp282 [V297 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
@@ -449,8 +449,8 @@
; V437 tmp422 [V437,T23] ( 2, 6.04) long -> rax "Cast away GC"
;* V438 tmp423 [V438,T130] ( 0, 0 ) ref -> zero-ref "argument with side effect"
;* V439 tmp424 [V439,T81] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-; V440 tmp425 [V440,T126] ( 2, 0 ) ref -> rdx "argument with side effect"
-; V441 tmp426 [V441,T127] ( 2, 0 ) ref -> rdx "argument with side effect"
+; V440 tmp425 [V440,T125] ( 2, 0 ) ref -> rdx "argument with side effect"
+; V441 tmp426 [V441,T126] ( 2, 0 ) ref -> rdx "argument with side effect"
;* V442 tmp427 [V442 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
; V443 tmp428 [V443 ] ( 6, 3.51) struct (16) [rsp+0x90] do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.Span`1[char]>
; V444 cse0 [V444,T59] ( 2, 3.17) int -> r8 "CSE #32: conservative"
@@ -1655,12 +1655,9 @@ G_M47563_IG133: ; bbWeight=0, gcVars=000000000000000010200000000000000000
call [System.RuntimeType:get_GenericParameterAttributes():int:this]
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M47563_IG135
- ;; size=85 bbWeight=0 PerfScore 0.00
+ ;; size=77 bbWeight=0 PerfScore 0.00
G_M47563_IG134: ; bbWeight=0, gcVars=000000000000000010400000000000000000000000000000 {V290 V293}, gcrefRegs=70E8 {rbx rbp rsi rdi r12 r13 r14}, byrefRegs=0000 {}, gcvars, byref
; GC ptr vars -{V291}
mov rcx, gword ptr [rsp+0x50]
@@ -1957,7 +1954,7 @@ G_M47563_IG158: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 3498, prolog size 53, PerfScore 434.09, instruction count 713, allocated bytes for code 3498 (MethodHash=fffa4634) for method System.Text.Json.Serialization.Converters.EnumConverter`1[int]:ResolveEnumFields(System.Text.Json.JsonNamingPolicy):System.Text.Json.Serialization.Converters.EnumConverter`1+EnumFieldInfo[int][] (Tier1)
+; Total bytes of code 3490, prolog size 53, PerfScore 434.09, instruction count 710, allocated bytes for code 3490 (MethodHash=fffa4634) for method System.Text.Json.Serialization.Converters.EnumConverter`1[int]:ResolveEnumFields(System.Text.Json.JsonNamingPolicy):System.Text.Json.Serialization.Converters.EnumConverter`1+EnumFieldInfo[int][] (Tier1)
; ============================================================
Unwind Info:-8 (-0.28%) : 743803.dasm - Xunit.Sdk.XunitTestCaseRunner:get_BeforeAfterAttributes():System.Collections.Generic.IReadOnlyList`1[Xunit.Sdk.BeforeAfterTestAttribute]:this (Tier1)
@@ -53,7 +53,7 @@
; V41 tmp40 [V41,T72] ( 6, 0 ) ref -> r15 class-hnd "Inline stloc first use temp" <System.RuntimeType>
;* V42 tmp41 [V42,T97] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V43 tmp42 [V43,T73] ( 5, 0 ) ref -> r12 class-hnd exact "Inline stloc first use temp" <System.RuntimeType>
-; V44 tmp43 [V44,T87] ( 3, 0 ) int -> rax "Inline stloc first use temp"
+; V44 tmp43 [V44,T96] ( 2, 0 ) int -> rax "Inline stloc first use temp"
;* V45 tmp44 [V45 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V46 tmp45 [V46,T62] ( 2, 1.42) int -> rcx
;* V47 tmp46 [V47 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
@@ -159,20 +159,20 @@
; V147 tmp146 [V147 ] ( 3, 1.42) ref -> [rsp+0x58] do-not-enreg[X] addr-exposed "field V132._item (fldOffset=0x8)" P-DEP
; V148 tmp147 [V148 ] ( 6, 2.85) int -> [rsp+0x60] do-not-enreg[X] addr-exposed "field V132._count (fldOffset=0x10)" P-DEP
; V149 tmp148 [V149 ] ( 3, 1.42) int -> [rsp+0x64] do-not-enreg[X] addr-exposed "field V132._capacity (fldOffset=0x14)" P-DEP
-; V150 tmp149 [V150,T88] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
+; V150 tmp149 [V150,T87] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
; V151 tmp150 [V151,T28] ( 2, 2.85) long -> rax "Cast away GC"
-; V152 tmp151 [V152,T89] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
+; V152 tmp151 [V152,T88] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
;* V153 tmp152 [V153 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
-; V154 tmp153 [V154,T90] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
-; V155 tmp154 [V155,T91] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
+; V154 tmp153 [V154,T89] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
+; V155 tmp154 [V155,T90] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
;* V156 tmp155 [V156 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
-; V157 tmp156 [V157,T92] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
-; V158 tmp157 [V158,T93] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
-; V159 tmp158 [V159,T94] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
-; V160 tmp159 [V160,T95] ( 2, 0 ) ref -> r8 "argument with side effect"
+; V157 tmp156 [V157,T91] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
+; V158 tmp157 [V158,T92] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V159 tmp158 [V159,T93] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V160 tmp159 [V160,T94] ( 2, 0 ) ref -> r8 "argument with side effect"
; V161 tmp160 [V161,T27] ( 2, 2.85) ref -> rdx single-def "argument with side effect"
;* V162 tmp161 [V162 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
-; V163 tmp162 [V163,T96] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V163 tmp162 [V163,T95] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
; V164 cse0 [V164,T03] ( 17, 4.98) ref -> rbp multi-def "CSE #01: aggressive"
; V165 cse1 [V165,T04] ( 9, 6.40) long -> registers multi-def "CSE #06: aggressive"
; V166 rat0 [V166,T74] ( 5, 0 ) long -> r13 "Widened IV V42"
@@ -885,12 +885,9 @@ G_M8802_IG64: ; bbWeight=0, gcrefRegs=C0E8 {rbx rbp rsi rdi r14 r15}, byr
call [System.RuntimeType:get_GenericParameterAttributes():int:this]
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M8802_IG66
- ;; size=71 bbWeight=0 PerfScore 0.00
+ ;; size=63 bbWeight=0 PerfScore 0.00
G_M8802_IG65: ; bbWeight=0, gcrefRegs=50E8 {rbx rbp rsi rdi r12 r14}, byrefRegs=0000 {}, byref
; gcrRegs -[r15]
mov r15, r12
@@ -1474,7 +1471,7 @@ G_M8802_IG106: ; bbWeight=0, gcrefRegs=0049 {rax rbx rsi}, byrefRegs=0000
jmp G_M8802_IG47
;; size=23 bbWeight=0 PerfScore 0.00
-; Total bytes of code 2889, prolog size 38, PerfScore 177.64, instruction count 641, allocated bytes for code 2889 (MethodHash=7c50dd9d) for method Xunit.Sdk.XunitTestCaseRunner:get_BeforeAfterAttributes():System.Collections.Generic.IReadOnlyList`1[Xunit.Sdk.BeforeAfterTestAttribute]:this (Tier1)
+; Total bytes of code 2881, prolog size 38, PerfScore 177.64, instruction count 638, allocated bytes for code 2881 (MethodHash=7c50dd9d) for method Xunit.Sdk.XunitTestCaseRunner:get_BeforeAfterAttributes():System.Collections.Generic.IReadOnlyList`1[Xunit.Sdk.BeforeAfterTestAttribute]:this (Tier1)
; ============================================================
Unwind Info:-8 (-0.28%) : 438959.dasm - Xunit.Internal.ArgumentFormatter:IsAnonymousType(System.Reflection.TypeInfo):bool (Tier1)
@@ -33,7 +33,7 @@
; V21 tmp20 [V21,T93] ( 6, 0 ) ref -> rbp class-hnd "Inline stloc first use temp" <System.RuntimeType>
;* V22 tmp21 [V22,T107] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V23 tmp22 [V23,T94] ( 5, 0 ) ref -> r15 class-hnd exact "Inline stloc first use temp" <System.RuntimeType>
-; V24 tmp23 [V24,T100] ( 3, 0 ) int -> rax "Inline stloc first use temp"
+; V24 tmp23 [V24,T103] ( 2, 0 ) int -> rax "Inline stloc first use temp"
;* V25 tmp24 [V25 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V26 tmp25 [V26,T20] ( 2, 2 ) int -> rcx
;* V27 tmp26 [V27 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
@@ -65,7 +65,7 @@
;* V53 tmp52 [V53 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling qmarkNull" <System.RuntimeType>
; V54 tmp53 [V54,T54] ( 3, 0.79) ref -> rbp class-hnd single-def "Inline stloc first use temp" <System.Object[]>
;* V55 tmp54 [V55,T75] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V56 tmp55 [V56,T101] ( 2, 0 ) ref -> rbp class-hnd exact single-def "impAppendStmt" <System.Reflection.RuntimeModule>
+; V56 tmp55 [V56,T100] ( 2, 0 ) ref -> rbp class-hnd exact single-def "impAppendStmt" <System.Reflection.RuntimeModule>
;* V57 tmp56 [V57 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
; V58 tmp57 [V58,T96] ( 4, 0 ) ref -> rbp class-hnd single-def "Inline stloc first use temp" <System.Object[]>
;* V59 tmp58 [V59 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
@@ -198,10 +198,10 @@
; V186 tmp185 [V186,T14] ( 2, 2.45) ref -> rdx single-def "argument with side effect"
;* V187 tmp186 [V187 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
;* V188 tmp187 [V188 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
-; V189 tmp188 [V189,T102] ( 2, 0 ) ref -> r8 "argument with side effect"
+; V189 tmp188 [V189,T101] ( 2, 0 ) ref -> r8 "argument with side effect"
; V190 tmp189 [V190 ] ( 2, 1.89) struct (24) [rsp+0x50] do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.RuntimeType+ListBuilder`1[System.Object]>
; V191 tmp190 [V191,T23] ( 2, 1.89) int -> r8 "argument with side effect"
-; V192 tmp191 [V192,T103] ( 2, 0 ) ref -> r8 single-def "argument with side effect"
+; V192 tmp191 [V192,T102] ( 2, 0 ) ref -> r8 single-def "argument with side effect"
; V193 tmp192 [V193,T86] ( 3, 0.04) ref -> rax single-def "argument with side effect"
; V194 tmp193 [V194,T85] ( 3, 0.04) ref -> rax single-def "argument with side effect"
; V195 tmp194 [V195,T104] ( 2, 0 ) int -> rdx "argument with side effect"
@@ -874,12 +874,9 @@ G_M15962_IG68: ; bbWeight=0, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=
call [System.RuntimeType:get_GenericParameterAttributes():int:this]
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M15962_IG70
- ;; size=71 bbWeight=0 PerfScore 0.00
+ ;; size=63 bbWeight=0 PerfScore 0.00
G_M15962_IG69: ; bbWeight=0, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rbp]
mov rbp, r15
@@ -1469,7 +1466,7 @@ G_M15962_IG123: ; bbWeight=0, gcVars=00000000000000000000000000000000 {},
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 2811, prolog size 51, PerfScore 128.59, instruction count 630, allocated bytes for code 2811 (MethodHash=36a8c1a5) for method Xunit.Internal.ArgumentFormatter:IsAnonymousType(System.Reflection.TypeInfo):bool (Tier1)
+; Total bytes of code 2803, prolog size 51, PerfScore 128.59, instruction count 627, allocated bytes for code 2803 (MethodHash=36a8c1a5) for method Xunit.Internal.ArgumentFormatter:IsAnonymousType(System.Reflection.TypeInfo):bool (Tier1)
; ============================================================
Unwind Info:-20 (-0.36%) : 262826.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateMethods(System.RuntimeType+RuntimeTypeCache+Filter):System.Reflection.RuntimeMethodInfo[]:this (Tier1)
@@ -27,7 +27,7 @@
;* V15 loc13 [V15 ] ( 0, 0 ) int -> zero-ref
; V16 loc14 [V16,T71] ( 2, 5.01) int -> r12
; V17 loc15 [V17,T02] ( 10,195.63) long -> [rbp+0x180] ld-addr-op
-; V18 loc16 [V18,T01] ( 11,230.04) int -> [rbp+0x17C]
+; V18 loc16 [V18,T01] ( 10,227.37) int -> [rbp+0x17C]
; V19 loc17 [V19,T10] ( 3, 90.07) int -> [rbp+0x178]
; V20 loc18 [V20,T16] ( 4, 67.92) ubyte -> r10
; V21 loc19 [V21,T24] ( 6, 45.28) int -> [rbp+0x174] ptr
@@ -1160,15 +1160,9 @@ G_M27271_IG83: ; bbWeight=10.22, gcrefRegs=00C0 {rsi rdi}, byrefRegs=4008
jmp G_M27271_IG28
;; size=14 bbWeight=10.22 PerfScore 33.23
G_M27271_IG84: ; bbWeight=2.68, gcrefRegs=00C0 {rsi rdi}, byrefRegs=4008 {rbx r14}, byref
- mov eax, dword ptr [rbp+0x17C]
- mov ecx, eax
- and ecx, 0x400
- mov dword ptr [rbp+0x17C], eax
- mov r10d, eax
- and r10d, 64
- or ecx, r10d
+ test dword ptr [rbp+0x17C], 0x440
je G_M27271_IG178
- ;; size=36 bbWeight=2.68 PerfScore 11.38
+ ;; size=16 bbWeight=2.68 PerfScore 5.36
G_M27271_IG85: ; bbWeight=2.68, gcrefRegs=00C0 {rsi rdi}, byrefRegs=4008 {rbx r14}, byref
cmp r9d, r15d
jae G_M27271_IG202
@@ -2368,7 +2362,7 @@ G_M27271_IG202: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 5581, prolog size 99, PerfScore 4686.08, instruction count 1127, allocated bytes for code 5596 (MethodHash=20c79578) for method System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateMethods(System.RuntimeType+RuntimeTypeCache+Filter):System.Reflection.RuntimeMethodInfo[]:this (Tier1)
+; Total bytes of code 5561, prolog size 99, PerfScore 4680.05, instruction count 1121, allocated bytes for code 5576 (MethodHash=20c79578) for method System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateMethods(System.RuntimeType+RuntimeTypeCache+Filter):System.Reflection.RuntimeMethodInfo[]:this (Tier1)
; ============================================================
Unwind Info:-8 (-0.41%) : 191643.dasm - (dynamicClass):Invoker(System.Runtime.CompilerServices.CallSiteBinder,System.Object,System.Object[]):System.Object (FullOpts)
@@ -24,7 +24,7 @@
; V11 tmp7 [V11,T60] ( 6, 0 ) ref -> r13 class-hnd "Inline stloc first use temp" <System.RuntimeType>
;* V12 tmp8 [V12,T69] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V13 tmp9 [V13,T61] ( 5, 0 ) ref -> [rbp-0xA0] class-hnd exact spill-single-def "Inline stloc first use temp" <System.RuntimeType>
-; V14 tmp10 [V14,T65] ( 3, 0 ) int -> rax "Inline stloc first use temp"
+; V14 tmp10 [V14,T68] ( 2, 0 ) int -> rax "Inline stloc first use temp"
;* V15 tmp11 [V15 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V16 tmp12 [V16,T45] ( 2, 2 ) int -> rcx
;* V17 tmp13 [V17 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
@@ -118,9 +118,9 @@
; V105 tmp101 [V105 ] ( 8, 5.50) int -> [rbp-0x78] do-not-enreg[X] addr-exposed "field V52._count (fldOffset=0x10)" P-DEP
; V106 tmp102 [V106 ] ( 8, 2.32) int -> [rbp-0x74] do-not-enreg[X] addr-exposed "field V52._capacity (fldOffset=0x14)" P-DEP
; V107 tmp103 [V107,T26] ( 2, 3.28) long -> rax "Cast away GC"
-; V108 tmp104 [V108,T66] ( 2, 0 ) ref -> rcx "argument with side effect"
-; V109 tmp105 [V109,T67] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
-; V110 tmp106 [V110,T68] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V108 tmp104 [V108,T65] ( 2, 0 ) ref -> rcx "argument with side effect"
+; V109 tmp105 [V109,T66] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
+; V110 tmp106 [V110,T67] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
; V111 tmp107 [V111,T14] ( 2, 3.96) byref -> r13 single-def "argument with side effect"
; V112 tmp108 [V112,T15] ( 2, 3.96) byref -> r12 single-def "argument with side effect"
; V113 tmp109 [V113,T16] ( 2, 3.96) byref -> [rbp-0xB0] spill-single-def "argument with side effect"
@@ -789,12 +789,9 @@ G_M59934_IG52: ; bbWeight=0, gcrefRegs=E0C8 {rbx rsi rdi r13 r14 r15}, by
call [System.RuntimeType:get_GenericParameterAttributes():int:this]
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M59934_IG54
- ;; size=83 bbWeight=0 PerfScore 0.00
+ ;; size=75 bbWeight=0 PerfScore 0.00
G_M59934_IG53: ; bbWeight=0, gcrefRegs=C0C8 {rbx rsi rdi r14 r15}, byrefRegs=0000 {}, byref
; gcrRegs -[r13]
mov r13, gword ptr [rbp-0xA0]
@@ -1006,7 +1003,7 @@ G_M59934_IG73: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1959, prolog size 63, PerfScore 194.89, instruction count 429, allocated bytes for code 1959 (MethodHash=140915e1) for method (dynamicClass):Invoker(System.Runtime.CompilerServices.CallSiteBinder,System.Object,System.Object[]):System.Object (FullOpts)
+; Total bytes of code 1951, prolog size 63, PerfScore 194.89, instruction count 426, allocated bytes for code 1951 (MethodHash=140915e1) for method (dynamicClass):Invoker(System.Runtime.CompilerServices.CallSiteBinder,System.Object,System.Object[]):System.Object (FullOpts)
; ============================================================
Unwind Info:-16 (-0.44%) : 380057.dasm - System.Uri:ParseRemaining():this (Tier1)
@@ -13,7 +13,7 @@
; V01 loc0 [V01,T00] ( 74, 28.99) long -> rsi
; V02 loc1 [V02,T13] ( 12, 6.93) ref -> rdi class-hnd exact single-def <System.String>
; V03 loc2 [V03,T16] ( 9, 6.35) int -> r15
-; V04 loc3 [V04,T08] ( 12, 8.18) int -> r13
+; V04 loc3 [V04,T10] ( 11, 7.18) int -> r13
; V05 loc4 [V05,T34] ( 5, 2.23) ubyte -> [rbp-0x3C] spill-single-def
; V06 loc5 [V06,T05] ( 27, 12.84) int -> [rbp-0x40]
;* V07 loc6 [V07 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.ReadOnlySpan`1[char]>
@@ -52,7 +52,7 @@
;* V40 tmp14 [V40 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V41 tmp15 [V41,T11] ( 4, 7.02) ushort -> rdx "Inlining Arg"
;* V42 tmp16 [V42 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[char]>
-; V43 tmp17 [V43,T09] ( 4, 8 ) int -> rcx "Inlining Arg"
+; V43 tmp17 [V43,T08] ( 4, 8 ) int -> rcx "Inlining Arg"
;* V44 tmp18 [V44 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[char]>
;* V45 tmp19 [V45 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[char]>
; V46 tmp20 [V46,T17] ( 3, 6 ) int -> r12 "Inlining Arg"
@@ -79,7 +79,7 @@
;* V67 tmp41 [V67 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V68 tmp42 [V68 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V69 tmp43 [V69 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[char]>
-; V70 tmp44 [V70,T10] ( 4, 8.00) int -> [rbp-0x68] spill-single-def "Inlining Arg"
+; V70 tmp44 [V70,T09] ( 4, 8.00) int -> [rbp-0x68] spill-single-def "Inlining Arg"
;* V71 tmp45 [V71 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[char]>
;* V72 tmp46 [V72 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[char]>
; V73 tmp47 [V73,T27] ( 2, 4.00) byref -> [rbp-0xC8] spill-single-def "Inlining Arg"
@@ -541,13 +541,9 @@ G_M48529_IG37: ; bbWeight=1.00, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000
mov r8, 0xD1FFAB1E
test rsi, r8
je SHORT G_M48529_IG38
- mov r8d, r13d
- and r8d, 0xD1FFAB1E
- mov r10d, r13d
- and r10d, 0xD1FFAB1E
- or r8d, r10d
+ test r13d, 0xD1FFAB1E
jne G_M48529_IG53
- ;; size=81 bbWeight=1.00 PerfScore 6.75
+ ;; size=65 bbWeight=1.00 PerfScore 5.75
G_M48529_IG38: ; bbWeight=0.52, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
test dl, 16
je G_M48529_IG57
@@ -1474,7 +1470,7 @@ G_M48529_IG135: ; bbWeight=0.00, funclet epilog, nogc, extend
ret
;; size=5 bbWeight=0.00 PerfScore 0.00
-; Total bytes of code 3662, prolog size 39, PerfScore 302.34, instruction count 836, allocated bytes for code 3662 (MethodHash=7d21426e) for method System.Uri:ParseRemaining():this (Tier1)
+; Total bytes of code 3646, prolog size 39, PerfScore 301.34, instruction count 832, allocated bytes for code 3646 (MethodHash=7d21426e) for method System.Uri:ParseRemaining():this (Tier1)
; ============================================================
Unwind Info:-8 (-0.56%) : 53549.dasm - System.Composition.TypedParts.Util.DirectAttributeContext:GetCustomAttributes(System.Type,System.Reflection.MemberInfo):System.Collections.Generic.IEnumerable`1[System.Attribute]:this (Tier1)
@@ -44,7 +44,7 @@
; V32 tmp29 [V32,T46] ( 6, 0 ) ref -> rbp class-hnd "Inline stloc first use temp" <System.RuntimeType>
;* V33 tmp30 [V33,T55] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V34 tmp31 [V34,T47] ( 5, 0 ) ref -> r15 class-hnd exact "Inline stloc first use temp" <System.RuntimeType>
-; V35 tmp32 [V35,T52] ( 3, 0 ) int -> rax "Inline stloc first use temp"
+; V35 tmp32 [V35,T54] ( 2, 0 ) int -> rax "Inline stloc first use temp"
;* V36 tmp33 [V36 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V37 tmp34 [V37,T34] ( 2, 1.64) int -> rcx
;* V38 tmp35 [V38 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
@@ -134,8 +134,8 @@
;* V122 tmp119 [V122 ] ( 0, 0 ) ref -> zero-ref single-def "field V87.m_type (fldOffset=0x0)" P-INDEP
;* V123 tmp120 [V123 ] ( 0, 0 ) ref -> zero-ref single-def "field V88.m_type (fldOffset=0x0)" P-INDEP
;* V124 tmp121 [V124 ] ( 0, 0 ) ref -> zero-ref single-def "field V90.m_type (fldOffset=0x0)" P-INDEP
-; V125 tmp122 [V125,T53] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
-; V126 tmp123 [V126,T54] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V125 tmp122 [V125,T52] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
+; V126 tmp123 [V126,T53] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
; V127 tmp124 [V127,T20] ( 2, 2.55) long -> rax "Cast away GC"
;* V128 tmp125 [V128 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
;* V129 tmp126 [V129 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
@@ -628,12 +628,9 @@ G_M8729_IG47: ; bbWeight=0, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0
call [System.RuntimeType:get_GenericParameterAttributes():int:this]
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M8729_IG49
- ;; size=71 bbWeight=0 PerfScore 0.00
+ ;; size=63 bbWeight=0 PerfScore 0.00
G_M8729_IG48: ; bbWeight=0, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rbp]
mov rbp, r15
@@ -792,7 +789,7 @@ G_M8729_IG62: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1418, prolog size 40, PerfScore 103.25, instruction count 326, allocated bytes for code 1418 (MethodHash=61dadde6) for method System.Composition.TypedParts.Util.DirectAttributeContext:GetCustomAttributes(System.Type,System.Reflection.MemberInfo):System.Collections.Generic.IEnumerable`1[System.Attribute]:this (Tier1)
+; Total bytes of code 1410, prolog size 40, PerfScore 103.25, instruction count 323, allocated bytes for code 1410 (MethodHash=61dadde6) for method System.Composition.TypedParts.Util.DirectAttributeContext:GetCustomAttributes(System.Type,System.Reflection.MemberInfo):System.Collections.Generic.IEnumerable`1[System.Attribute]:this (Tier1)
; ============================================================
Unwind Info:-8 (-0.59%) : 700339.dasm - System.Attribute:GetCustomAttributes(System.Reflection.MemberInfo,bool):System.Attribute[] (Tier1)
@@ -41,7 +41,7 @@
; V29 tmp25 [V29,T43] ( 6, 0.00) ref -> r14 class-hnd "Inline stloc first use temp" <System.RuntimeType>
;* V30 tmp26 [V30,T61] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V31 tmp27 [V31,T44] ( 5, 0.00) ref -> r12 class-hnd exact "Inline stloc first use temp" <System.RuntimeType>
-; V32 tmp28 [V32,T56] ( 3, 0 ) int -> rax "Inline stloc first use temp"
+; V32 tmp28 [V32,T60] ( 2, 0 ) int -> rax "Inline stloc first use temp"
;* V33 tmp29 [V33 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V34 tmp30 [V34,T28] ( 2, 2 ) int -> rcx
;* V35 tmp31 [V35 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
@@ -140,13 +140,13 @@
;* V128 tmp124 [V128 ] ( 0, 0 ) long -> zero-ref "field V93.m_asTAddr (fldOffset=0x0)" P-INDEP
;* V129 tmp125 [V129 ] ( 0, 0 ) long -> zero-ref "field V95.m_asTAddr (fldOffset=0x0)" P-INDEP
;* V130 tmp126 [V130 ] ( 0, 0 ) ref -> zero-ref single-def "field V97.m_type (fldOffset=0x0)" P-INDEP
-; V131 tmp127 [V131,T58] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
-; V132 tmp128 [V132,T59] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V131 tmp127 [V131,T57] ( 2, 0 ) ref -> rcx single-def "argument with side effect"
+; V132 tmp128 [V132,T58] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
; V133 tmp129 [V133,T14] ( 2, 3.36) long -> rax "Cast away GC"
;* V134 tmp130 [V134 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
;* V135 tmp131 [V135 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
;* V136 tmp132 [V136 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
-; V137 tmp133 [V137,T60] ( 2, 0 ) ref -> rdx "argument with side effect"
+; V137 tmp133 [V137,T59] ( 2, 0 ) ref -> rdx "argument with side effect"
;* V138 tmp134 [V138 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
; V139 cse0 [V139,T50] ( 3, 0.00) int -> r15 "CSE #04: conservative"
; V140 cse1 [V140,T06] ( 13, 3.84) ref -> rbp multi-def "CSE #02: aggressive"
@@ -158,7 +158,7 @@
; V146 rat3 [V146,T04] ( 4, 6 ) ref -> rdi "replacement local"
; V147 rat4 [V147,T49] ( 3, 0.00) ref -> rdx "Spilling to split statement for tree"
; V148 rat5 [V148,T42] ( 4, 0.00) ref -> r12 "replacement local"
-; V149 rat6 [V149,T57] ( 3, 0.00) long -> rcx "CSE for expectedClsNode"
+; V149 rat6 [V149,T56] ( 3, 0.00) long -> rcx "CSE for expectedClsNode"
; V150 rat7 [V150,T02] ( 5, 7.00) ref -> r14 "replacement local"
; V151 rat8 [V151,T26] ( 3, 2.00) long -> rcx "CSE for expectedClsNode"
;
@@ -543,12 +543,9 @@ G_M17769_IG39: ; bbWeight=0, gcrefRegs=50A8 {rbx rbp rdi r12 r14}, byrefR
call [rax]System.RuntimeType:get_GenericParameterAttributes():int:this
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M17769_IG41
- ;; size=27 bbWeight=0 PerfScore 0.00
+ ;; size=19 bbWeight=0 PerfScore 0.00
G_M17769_IG40: ; bbWeight=0.00, gcrefRegs=10A8 {rbx rbp rdi r12}, byrefRegs=2000 {r13}, byref
; gcrRegs -[r14]
mov r14, r12
@@ -787,7 +784,7 @@ G_M17769_IG54: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1361, prolog size 38, PerfScore 86.46, instruction count 314, allocated bytes for code 1361 (MethodHash=f911ba96) for method System.Attribute:GetCustomAttributes(System.Reflection.MemberInfo,bool):System.Attribute[] (Tier1)
+; Total bytes of code 1353, prolog size 38, PerfScore 86.46, instruction count 311, allocated bytes for code 1353 (MethodHash=f911ba96) for method System.Attribute:GetCustomAttributes(System.Reflection.MemberInfo,bool):System.Attribute[] (Tier1)
; ============================================================
Unwind Info:-8 (-0.64%) : 479271.dasm - System.Resources.ManifestBasedResourceGroveler:GetNeutralResourcesLanguage(System.Reflection.Assembly,byref):System.Globalization.CultureInfo (Tier1)
@@ -16,13 +16,13 @@
;* V04 loc2 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <<unknown class>>
; V05 OutArgs [V05 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <UNNAMED>
; V06 tmp1 [V06,T38] ( 3, 0 ) ref -> rsi class-hnd exact single-def "Single-def Box Helper" <<unknown class>>
-; V07 tmp2 [V07,T45] ( 2, 0 ) ref -> rdi class-hnd exact single-def "impImportAndPushBox" <System.String>
+; V07 tmp2 [V07,T44] ( 2, 0 ) ref -> rdi class-hnd exact single-def "impImportAndPushBox" <System.String>
; V08 tmp3 [V08,T39] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
; V09 tmp4 [V09,T34] ( 5, 0.00) ref -> rbx class-hnd single-def "impSpillSpecialSideEff" <<unknown class>>
-; V10 tmp5 [V10,T46] ( 2, 0.00) ref -> rsi class-hnd exact single-def "non-inline candidate call" <System.String>
+; V10 tmp5 [V10,T45] ( 2, 0.00) ref -> rsi class-hnd exact single-def "non-inline candidate call" <System.String>
; V11 tmp6 [V11,T40] ( 3, 0.00) ref -> rdi class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
;* V12 tmp7 [V12 ] ( 0, 0 ) ref -> zero-ref single-def
-; V13 tmp8 [V13,T47] ( 2, 0.00) ref -> rsi single-def
+; V13 tmp8 [V13,T46] ( 2, 0.00) ref -> rsi single-def
;* V14 tmp9 [V14 ] ( 0, 0 ) ref -> zero-ref single-def
;* V15 tmp10 [V15 ] ( 0, 0 ) ref -> zero-ref single-def
;* V16 tmp11 [V16 ] ( 0, 0 ) ref -> zero-ref single-def
@@ -46,7 +46,7 @@
; V34 tmp29 [V34,T33] ( 6, 0 ) ref -> r14 class-hnd "Inline stloc first use temp" <System.RuntimeType>
;* V35 tmp30 [V35,T52] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V36 tmp31 [V36,T35] ( 5, 0 ) ref -> r13 class-hnd exact "Inline stloc first use temp" <System.RuntimeType>
-; V37 tmp32 [V37,T43] ( 3, 0 ) int -> rax "Inline stloc first use temp"
+; V37 tmp32 [V37,T50] ( 2, 0 ) int -> rax "Inline stloc first use temp"
;* V38 tmp33 [V38 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V39 tmp34 [V39,T20] ( 2, 1 ) int -> rax
;* V40 tmp35 [V40 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
@@ -81,7 +81,7 @@
; V69 tmp64 [V69,T10] ( 6, 1.88) ref -> rcx
; V70 tmp65 [V70,T51] ( 2, 0.00) ubyte -> rsi "Inline return value spill temp"
; V71 tmp66 [V71,T36] ( 5, 0.00) ref -> rax class-hnd single-def "Inlining Arg" <System.Reflection.Assembly>
-; V72 tmp67 [V72,T44] ( 3, 0.00) ubyte -> rsi "guarded devirt return temp"
+; V72 tmp67 [V72,T43] ( 3, 0.00) ubyte -> rsi "guarded devirt return temp"
;* V73 tmp68 [V73 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "guarded devirt this exact temp" <System.Reflection.RuntimeAssembly>
;* V74 tmp69 [V74 ] ( 0, 0 ) long -> zero-ref "field V38.m_asTAddr (fldOffset=0x0)" P-INDEP
;* V75 tmp70 [V75,T28] ( 0, 0 ) long -> zero-ref "field V40.m_asTAddr (fldOffset=0x0)" P-INDEP
@@ -89,9 +89,9 @@
;* V77 tmp72 [V77,T29] ( 0, 0 ) long -> zero-ref "field V48.m_asTAddr (fldOffset=0x0)" P-INDEP
; V78 tmp73 [V78,T13] ( 2, 1.61) long -> rax "Cast away GC"
; V79 tmp74 [V79,T32] ( 2, 0.03) ref -> rdx single-def "argument with side effect"
-; V80 tmp75 [V80,T48] ( 2, 0.00) ref -> r8 single-def "argument with side effect"
-; V81 tmp76 [V81,T49] ( 2, 0.00) ref -> rdx single-def "argument with side effect"
-; V82 tmp77 [V82,T50] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
+; V80 tmp75 [V80,T47] ( 2, 0.00) ref -> r8 single-def "argument with side effect"
+; V81 tmp76 [V81,T48] ( 2, 0.00) ref -> rdx single-def "argument with side effect"
+; V82 tmp77 [V82,T49] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
;* V83 tmp78 [V83 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
; V84 cse0 [V84,T16] ( 3, 1.47) int -> rcx "CSE #08: moderate"
; V85 cse1 [V85,T05] ( 7, 1.90) ref -> rsi "CSE #02: aggressive"
@@ -401,12 +401,9 @@ G_M33009_IG30: ; bbWeight=0, gcrefRegs=40C0 {rsi rdi r14}, byrefRegs=0008
call [System.RuntimeType:get_GenericParameterAttributes():int:this]
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M33009_IG32
- ;; size=71 bbWeight=0 PerfScore 0.00
+ ;; size=63 bbWeight=0 PerfScore 0.00
G_M33009_IG31: ; bbWeight=0, gcrefRegs=20C0 {rsi rdi r13}, byrefRegs=0008 {rbx}, byref
; gcrRegs -[r14]
mov r14, r13
@@ -749,7 +746,7 @@ G_M33009_IG57: ; bbWeight=0.00, gcVars=0000000000004001 {V00 V02}, gcrefR
int3
;; size=77 bbWeight=0.00 PerfScore 0.00
-; Total bytes of code 1252, prolog size 26, PerfScore 53.14, instruction count 304, allocated bytes for code 1252 (MethodHash=abb37f0e) for method System.Resources.ManifestBasedResourceGroveler:GetNeutralResourcesLanguage(System.Reflection.Assembly,byref):System.Globalization.CultureInfo (Tier1)
+; Total bytes of code 1244, prolog size 26, PerfScore 53.14, instruction count 301, allocated bytes for code 1244 (MethodHash=abb37f0e) for method System.Resources.ManifestBasedResourceGroveler:GetNeutralResourcesLanguage(System.Reflection.Assembly,byref):System.Globalization.CultureInfo (Tier1)
; ============================================================
Unwind Info:-4 (-0.77%) : 26464.dasm - System.Sha1ForNonSecretPurposes:Drain(System.Span`1[uint]) (Instrumented Tier1)
@@ -10,7 +10,7 @@
;
; V00 arg0 [V00,T21] ( 4, 8 ) byref -> rcx ld-addr-op single-def
; V01 loc0 [V01,T05] ( 14,254.00) int -> rsi
-; V02 loc1 [V02,T02] ( 16,296.00) int -> rdi
+; V02 loc1 [V02,T02] ( 15,275.00) int -> rdi
; V03 loc2 [V03,T03] ( 15,275.00) int -> rbp
; V04 loc3 [V04,T04] ( 15,275.00) int -> r14
; V05 loc4 [V05,T07] ( 10,170.00) int -> r15
@@ -160,13 +160,11 @@ G_M28360_IG09: ; bbWeight=21, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, by
mov rcx, 0xD1FFAB1E
call CORINFO_HELP_COUNTPROFILE32
; gcr arg pop 0
- mov ecx, edi
- and ecx, ebp
- mov eax, edi
- and eax, r14d
- or ecx, eax
+ mov ecx, ebp
+ and ecx, r14d
mov eax, ebp
- and eax, r14d
+ or eax, r14d
+ and eax, edi
or ecx, eax
mov eax, esi
rol eax, 5
@@ -183,7 +181,7 @@ G_M28360_IG09: ; bbWeight=21, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, by
inc r13d
cmp r13d, 60
jl SHORT G_M28360_IG09
- ;; size=78 bbWeight=21 PerfScore 225.75
+ ;; size=74 bbWeight=21 PerfScore 215.25
G_M28360_IG10: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
mov r13d, 60
;; size=6 bbWeight=1.00 PerfScore 0.25
@@ -245,7 +243,7 @@ G_M28360_IG14: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 522, prolog size 16, PerfScore 1923.50, instruction count 151, allocated bytes for code 522 (MethodHash=c3689137) for method System.Sha1ForNonSecretPurposes:Drain(System.Span`1[uint]) (Instrumented Tier1)
+; Total bytes of code 518, prolog size 16, PerfScore 1913.00, instruction count 149, allocated bytes for code 518 (MethodHash=c3689137) for method System.Sha1ForNonSecretPurposes:Drain(System.Span`1[uint]) (Instrumented Tier1)
; ============================================================
Unwind Info:-11 (-1.10%) : 416691.dasm - System.Runtime.CompilerServices.TaskAwaiter:HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task,int) (Tier1)
@@ -23,15 +23,15 @@
;* V11 tmp8 [V11 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V12 tmp9 [V12 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V13 tmp10 [V13 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V14 tmp11 [V14,T04] ( 4, 3.27) int -> rcx "Inline stloc first use temp"
+; V14 tmp11 [V14,T09] ( 3, 2.27) int -> rcx "Inline stloc first use temp"
;* V15 tmp12 [V15,T19] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V16 tmp13 [V16 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V17 tmp14 [V17,T05] ( 8, 3.22) int -> rcx "Inline stloc first use temp"
+; V17 tmp14 [V17,T04] ( 8, 3.22) int -> rcx "Inline stloc first use temp"
; V18 tmp15 [V18,T10] ( 8, 2.52) int -> rdx "Inline stloc first use temp"
; V19 tmp16 [V19,T15] ( 3, 1.21) ref -> rcx class-hnd "Inline return value spill temp" <System.Runtime.ExceptionServices.ExceptionDispatchInfo>
-; V20 tmp17 [V20,T08] ( 3, 2.89) ref -> rdx class-hnd exact single-def "dup spill" <System.Threading.Tasks.Task+ContingentProperties>
+; V20 tmp17 [V20,T07] ( 3, 2.89) ref -> rdx class-hnd exact single-def "dup spill" <System.Threading.Tasks.Task+ContingentProperties>
;* V21 tmp18 [V21 ] ( 0, 0 ) ref -> zero-ref single-def
-; V22 tmp19 [V22,T09] ( 3, 2.73) ref -> rdx class-hnd exact single-def "dup spill" <System.Threading.Tasks.TaskExceptionHolder>
+; V22 tmp19 [V22,T08] ( 3, 2.73) ref -> rdx class-hnd exact single-def "dup spill" <System.Threading.Tasks.TaskExceptionHolder>
;* V23 tmp20 [V23 ] ( 0, 0 ) ref -> zero-ref single-def
;* V24 tmp21 [V24 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V25 tmp22 [V25 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Runtime.ExceptionServices.ExceptionDispatchInfo>
@@ -59,9 +59,9 @@
;* V47 tmp44 [V47 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inlining Arg" <System.Threading.Tasks.TaskExceptionHolder>
; V48 tmp45 [V48,T22] ( 2, 0 ) byref -> rcx single-def "Inlining Arg"
;* V49 tmp46 [V49 ] ( 0, 0 ) ref -> zero-ref single-def "field V02._source (fldOffset=0x0)" P-INDEP
-; V50 tmp47 [V50,T06] ( 3, 3.11) ref -> rcx single-def "arr expr"
+; V50 tmp47 [V50,T05] ( 3, 3.11) ref -> rcx single-def "arr expr"
; V51 rat0 [V51,T12] ( 3, 1.75) ref -> rdx "Spilling to split statement for tree"
-; V52 rat1 [V52,T07] ( 5, 2.96) ref -> rax "replacement local"
+; V52 rat1 [V52,T06] ( 5, 2.96) ref -> rax "replacement local"
;
; Lcl frame size = 32
@@ -106,13 +106,9 @@ G_M42179_IG05: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
;; size=44 bbWeight=1 PerfScore 7.75
G_M42179_IG06: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
mov ecx, dword ptr [rbx+0x34]
- mov edx, ecx
- and edx, 0xD1FFAB1E
- mov eax, ecx
- and eax, 0xD1FFAB1E
- or edx, eax
+ test ecx, 0xD1FFAB1E
je G_M42179_IG21
- ;; size=26 bbWeight=1 PerfScore 4.25
+ ;; size=15 bbWeight=1 PerfScore 3.25
G_M42179_IG07: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
mov ecx, dword ptr [rbx+0x34]
test ecx, 0xD1FFAB1E
@@ -482,7 +478,7 @@ G_M42179_IG51: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 998, prolog size 7, PerfScore 70.00, instruction count 213, allocated bytes for code 998 (MethodHash=b4495b3c) for method System.Runtime.CompilerServices.TaskAwaiter:HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task,int) (Tier1)
+; Total bytes of code 987, prolog size 7, PerfScore 69.00, instruction count 209, allocated bytes for code 987 (MethodHash=b4495b3c) for method System.Runtime.CompilerServices.TaskAwaiter:HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task,int) (Tier1)
; ============================================================
Unwind Info:-11 (-1.37%) : 416692.dasm - System.Runtime.CompilerServices.TaskAwaiter:ThrowForNonSuccess(System.Threading.Tasks.Task) (Tier1)
@@ -18,15 +18,15 @@
;* V06 tmp2 [V06 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V07 tmp3 [V07 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V08 tmp4 [V08 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V09 tmp5 [V09,T03] ( 4, 3.27) int -> rcx "Inline stloc first use temp"
+; V09 tmp5 [V09,T08] ( 3, 2.27) int -> rcx "Inline stloc first use temp"
;* V10 tmp6 [V10,T18] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V11 tmp7 [V11 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V12 tmp8 [V12,T04] ( 8, 3.22) int -> rcx "Inline stloc first use temp"
+; V12 tmp8 [V12,T03] ( 8, 3.22) int -> rcx "Inline stloc first use temp"
; V13 tmp9 [V13,T09] ( 8, 2.52) int -> rdx "Inline stloc first use temp"
; V14 tmp10 [V14,T14] ( 3, 1.21) ref -> rcx class-hnd "Inline return value spill temp" <System.Runtime.ExceptionServices.ExceptionDispatchInfo>
-; V15 tmp11 [V15,T07] ( 3, 2.89) ref -> rdx class-hnd exact single-def "dup spill" <System.Threading.Tasks.Task+ContingentProperties>
+; V15 tmp11 [V15,T06] ( 3, 2.89) ref -> rdx class-hnd exact single-def "dup spill" <System.Threading.Tasks.Task+ContingentProperties>
;* V16 tmp12 [V16 ] ( 0, 0 ) ref -> zero-ref single-def
-; V17 tmp13 [V17,T08] ( 3, 2.73) ref -> rdx class-hnd exact single-def "dup spill" <System.Threading.Tasks.TaskExceptionHolder>
+; V17 tmp13 [V17,T07] ( 3, 2.73) ref -> rdx class-hnd exact single-def "dup spill" <System.Threading.Tasks.TaskExceptionHolder>
;* V18 tmp14 [V18 ] ( 0, 0 ) ref -> zero-ref single-def
;* V19 tmp15 [V19 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V20 tmp16 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Runtime.ExceptionServices.ExceptionDispatchInfo>
@@ -47,9 +47,9 @@
;* V35 tmp31 [V35 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V36 tmp32 [V36 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
; V37 tmp33 [V37,T10] ( 2, 2.01) byref -> rcx single-def "Inlining Arg"
-; V38 tmp34 [V38,T05] ( 3, 3.11) ref -> rcx single-def "arr expr"
+; V38 tmp34 [V38,T04] ( 3, 3.11) ref -> rcx single-def "arr expr"
; V39 rat0 [V39,T11] ( 3, 1.75) ref -> rdx "Spilling to split statement for tree"
-; V40 rat1 [V40,T06] ( 5, 2.96) ref -> rax "replacement local"
+; V40 rat1 [V40,T05] ( 5, 2.96) ref -> rax "replacement local"
;
; Lcl frame size = 32
@@ -67,13 +67,9 @@ G_M30140_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
;; size=13 bbWeight=1 PerfScore 3.00
G_M30140_IG03: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
mov ecx, dword ptr [rbx+0x34]
- mov edx, ecx
- and edx, 0xD1FFAB1E
- mov eax, ecx
- and eax, 0xD1FFAB1E
- or edx, eax
+ test ecx, 0xD1FFAB1E
je G_M30140_IG18
- ;; size=26 bbWeight=1 PerfScore 4.25
+ ;; size=15 bbWeight=1 PerfScore 3.25
G_M30140_IG04: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
mov ecx, dword ptr [rbx+0x34]
test ecx, 0xD1FFAB1E
@@ -396,7 +392,7 @@ G_M30140_IG45: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 805, prolog size 7, PerfScore 56.40, instruction count 169, allocated bytes for code 805 (MethodHash=74148a43) for method System.Runtime.CompilerServices.TaskAwaiter:ThrowForNonSuccess(System.Threading.Tasks.Task) (Tier1)
+; Total bytes of code 794, prolog size 7, PerfScore 55.40, instruction count 165, allocated bytes for code 794 (MethodHash=74148a43) for method System.Runtime.CompilerServices.TaskAwaiter:ThrowForNonSuccess(System.Threading.Tasks.Task) (Tier1)
; ============================================================
Unwind Info:-8 (-2.29%) : 749292.dasm - System.RuntimeType:GetBaseType():System.RuntimeType:this (Tier1)
@@ -14,7 +14,7 @@
; V02 loc1 [V02,T11] ( 5, 0 ) ref -> rdi class-hnd <System.RuntimeType>
;* V03 loc2 [V03,T16] ( 0, 0 ) int -> zero-ref
; V04 loc3 [V04,T12] ( 5, 0 ) ref -> r14 class-hnd exact <System.RuntimeType>
-; V05 loc4 [V05,T15] ( 3, 0 ) int -> rax
+; V05 loc4 [V05,T15] ( 2, 0 ) int -> rax
; V06 OutArgs [V06 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <UNNAMED>
;* V07 tmp1 [V07 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
; V08 tmp2 [V08,T09] ( 3, 2 ) int -> rcx
@@ -172,12 +172,9 @@ G_M56028_IG12: ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000
call [System.RuntimeType:get_GenericParameterAttributes():int:this]
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 4
- and eax, 8
- or ecx, eax
+ test al, 12
je SHORT G_M56028_IG14
- ;; size=71 bbWeight=0 PerfScore 0.00
+ ;; size=63 bbWeight=0 PerfScore 0.00
G_M56028_IG13: ; bbWeight=0, gcrefRegs=4048 {rbx rsi r14}, byrefRegs=0000 {}, byref
; gcrRegs -[rdi]
mov rdi, r14
@@ -233,7 +230,7 @@ G_M56028_IG18: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0008 {
jmp G_M56028_IG06
;; size=11 bbWeight=0 PerfScore 0.00
-; Total bytes of code 349, prolog size 10, PerfScore 29.50, instruction count 107, allocated bytes for code 349 (MethodHash=370d2523) for method System.RuntimeType:GetBaseType():System.RuntimeType:this (Tier1)
+; Total bytes of code 341, prolog size 10, PerfScore 29.50, instruction count 104, allocated bytes for code 341 (MethodHash=370d2523) for method System.RuntimeType:GetBaseType():System.RuntimeType:this (Tier1)
; ============================================================
Unwind Info:-32 (-3.58%) : 386139.dasm - Xunit.Sdk.AsyncUtility:TryConvertToTask(System.Object):System.Threading.Tasks.Task (Tier1)
@@ -10,7 +10,7 @@
; Final local variable assignments
;
; V00 arg0 [V00,T01] ( 7, 4.29) ref -> rbx class-hnd single-def <System.Object>
-; V01 loc0 [V01,T03] ( 4, 3.90) ref -> rax class-hnd single-def <System.Threading.Tasks.Task>
+; V01 loc0 [V01,T02] ( 4, 3.90) ref -> rax class-hnd single-def <System.Threading.Tasks.Task>
; V02 loc1 [V02,T05] ( 4, 0 ) ref -> rsi class-hnd exact single-def <System.RuntimeType>
; V03 loc2 [V03,T04] ( 5, 0 ) ref -> rdi class-hnd single-def <System.Reflection.TypeInfo>
; V04 loc3 [V04,T09] ( 3, 0 ) ref -> rax class-hnd single-def <System.Threading.Tasks.Task>
@@ -30,7 +30,7 @@
; V18 tmp13 [V18,T16] ( 3, 0 ) ref -> rdi class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
; V19 tmp14 [V19,T07] ( 4, 0 ) ref -> rbp class-hnd exact single-def "NewObj constructor temp" <System.Func`2[System.Reflection.MethodInfo,bool]>
; V20 tmp15 [V20,T17] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-; V21 tmp16 [V21,T02] ( 8, 4.95) int -> rcx single-def "Inline stloc first use temp"
+; V21 tmp16 [V21,T03] ( 6, 3.00) int -> rcx single-def "Inline stloc first use temp"
;* V22 tmp17 [V22,T08] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V23 tmp18 [V23 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
;* V24 tmp19 [V24 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Collections.Generic.IEnumerable`1[System.Reflection.MethodInfo]>
@@ -58,10 +58,10 @@ G_M3689_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rbx, rcx
; gcrRegs +[rbx]
;; size=18 bbWeight=1 PerfScore 5.75
-G_M3689_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M3689_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
test rbx, rbx
- je G_M3689_IG08
- ;; size=9 bbWeight=1 PerfScore 1.25
+ je SHORT G_M3689_IG08
+ ;; size=5 bbWeight=1 PerfScore 1.25
G_M3689_IG03: ; bbWeight=0.98, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
mov rax, rbx
; gcrRegs +[rax]
@@ -73,16 +73,9 @@ G_M3689_IG04: ; bbWeight=0.98, gcrefRegs=0009 {rax rbx}, byrefRegs=0000 {
test rax, rax
je G_M3689_IG11
mov ecx, dword ptr [rax+0x34]
- mov edx, ecx
- and edx, 0xD1FFAB1E
- mov r8d, ecx
- and r8d, 0xD1FFAB1E
- or edx, r8d
- mov r8d, ecx
- and r8d, 0xD1FFAB1E
- or edx, r8d
+ test ecx, 0xD1FFAB1E
je SHORT G_M3689_IG07
- ;; size=48 bbWeight=0.98 PerfScore 6.10
+ ;; size=20 bbWeight=0.98 PerfScore 4.39
G_M3689_IG05: ; bbWeight=0.98, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, epilog, nogc
; gcrRegs -[rbx]
add rsp, 56
@@ -425,7 +418,7 @@ G_M3689_IG17: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 894, prolog size 15, PerfScore 22.70, instruction count 206, allocated bytes for code 894 (MethodHash=6785f196) for method Xunit.Sdk.AsyncUtility:TryConvertToTask(System.Object):System.Threading.Tasks.Task (Tier1)
+; Total bytes of code 862, prolog size 15, PerfScore 20.99, instruction count 199, allocated bytes for code 862 (MethodHash=6785f196) for method Xunit.Sdk.AsyncUtility:TryConvertToTask(System.Object):System.Threading.Tasks.Task (Tier1)
; ============================================================
Unwind Info:-52 (-1.84%) : 695767.dasm - Xunit.Sdk.Sha1Digest:ProcessBlock():this (Tier1)
@@ -10,11 +10,11 @@
; Final local variable assignments
;
; V00 this [V00,T63] ( 14, 14.00) ref -> rcx this class-hnd single-def <Xunit.Sdk.Sha1Digest>
-; V01 loc0 [V01,T13] ( 70,182.00) int -> rax
-; V02 loc1 [V02,T16] ( 68,182.00) int -> r9
-; V03 loc2 [V03,T17] ( 61,182.00) int -> rsi
-; V04 loc3 [V04,T15] ( 69,182.00) int -> rbp
-; V05 loc4 [V05,T14] ( 70,182.00) int -> r15
+; V01 loc0 [V01,T13] ( 68,177.00) int -> rax
+; V02 loc1 [V02,T15] ( 67,177.00) int -> r9
+; V03 loc2 [V03,T17] ( 59,177.00) int -> rsi
+; V04 loc3 [V04,T16] ( 67,177.00) int -> rbp
+; V05 loc4 [V05,T14] ( 68,177.00) int -> r15
; V06 loc5 [V06,T08] ( 73,201.00) int -> registers
;* V07 loc6 [V07,T81] ( 0, 0 ) int -> zero-ref
; V08 loc7 [V08,T18] ( 2,130.68) int -> rax
@@ -359,13 +359,11 @@ G_M42046_IG11: ; bbWeight=1.00, gcrefRegs=000A {rcx rbx}, byrefRegs=0000
;; size=6 bbWeight=1.00 PerfScore 0.25
G_M42046_IG12: ; bbWeight=5.00, gcrefRegs=000A {rcx rbx}, byrefRegs=0000 {}, byref
lea r14d, [r13+0x01]
- mov edi, r9d
- and edi, esi
- mov r11d, r9d
- and r11d, ebp
- or r11d, edi
mov edi, esi
and edi, ebp
+ mov r11d, esi
+ or r11d, ebp
+ and r11d, r9d
or r11d, edi
mov edi, eax
rol edi, 5
@@ -385,13 +383,11 @@ G_M42046_IG12: ; bbWeight=5.00, gcrefRegs=000A {rcx rbx}, byrefRegs=0000
rol r9d, 30
mov r11d, r14d
lea r14d, [r11+0x01]
- mov edi, eax
- and edi, r9d
- mov r13d, eax
- and r13d, esi
- or edi, r13d
+ mov edi, r9d
+ and edi, esi
mov r13d, r9d
- and r13d, esi
+ or r13d, esi
+ and r13d, eax
or edi, r13d
mov r13d, r15d
rol r13d, 5
@@ -404,14 +400,12 @@ G_M42046_IG12: ; bbWeight=5.00, gcrefRegs=000A {rcx rbx}, byrefRegs=0000
rol eax, 30
mov r11d, r14d
lea r14d, [r11+0x01]
- mov r13d, r15d
- ; gcrRegs -[r13]
- and r13d, eax
- mov edi, r15d
- and edi, r9d
- or edi, r13d
mov r13d, eax
+ ; gcrRegs -[r13]
and r13d, r9d
+ mov edi, eax
+ or edi, r9d
+ and edi, r15d
or edi, r13d
mov r13d, ebp
rol r13d, 5
@@ -424,21 +418,17 @@ G_M42046_IG12: ; bbWeight=5.00, gcrefRegs=000A {rcx rbx}, byrefRegs=0000
rol r15d, 30
mov r11d, r14d
lea r14d, [r11+0x01]
- mov r13d, ebp
- ; gcrRegs -[r13]
- and r13d, r15d
- mov edi, ebp
- and edi, eax
- or edi, r13d
mov r13d, r15d
+ ; gcrRegs -[r13]
and r13d, eax
+ mov edi, r15d
+ or edi, eax
+ and edi, ebp
or edi, r13d
mov r13d, esi
rol r13d, 5
add r13d, r9d
add edi, r13d
- ;; size=249 bbWeight=5.00 PerfScore 151.25
-G_M42046_IG13: ; bbWeight=5.00, extend
mov r9, rbx
; gcrRegs +[r9]
mov r9d, dword ptr [r9+4*r11+0x10]
@@ -446,14 +436,14 @@ G_M42046_IG13: ; bbWeight=5.00, extend
lea r9d, [rdi+r9+D1FFAB1EH]
rol ebp, 30
mov r11d, r14d
+ ;; size=247 bbWeight=5.00 PerfScore 161.25
+G_M42046_IG13: ; bbWeight=5.00, extend
lea r14d, [r11+0x01]
- mov edi, esi
- and edi, ebp
- mov r13d, esi
- and r13d, r15d
- or edi, r13d
+ mov edi, ebp
+ and edi, r15d
mov r13d, ebp
- and r13d, r15d
+ or r13d, r15d
+ and r13d, esi
or edi, r13d
mov r13d, r9d
rol r13d, 5
@@ -464,7 +454,7 @@ G_M42046_IG13: ; bbWeight=5.00, extend
mov eax, dword ptr [rax+4*r11+0x10]
; gcrRegs -[rax]
lea eax, [rdi+rax+D1FFAB1EH]
- ;; size=76 bbWeight=5.00 PerfScore 55.00
+ ;; size=49 bbWeight=5.00 PerfScore 32.50
G_M42046_IG14: ; bbWeight=5.00, gcrefRegs=000A {rcx rbx}, byrefRegs=0000 {}, byref
rol esi, 30
dec r12d
@@ -835,13 +825,11 @@ G_M42046_IG30: ; bbWeight=0, gcrefRegs=008A {rcx rbx rdi}, byrefRegs=0000
rol r9d, 30
mov r11d, r14d
lea r14d, [r11+0x01]
- mov edi, eax
- and edi, r9d
- mov r13d, eax
- and r13d, esi
- or edi, r13d
+ mov edi, r9d
+ and edi, esi
mov r13d, r9d
- and r13d, esi
+ or r13d, esi
+ and r13d, eax
or edi, r13d
mov r13d, r15d
rol r13d, 5
@@ -856,14 +844,12 @@ G_M42046_IG30: ; bbWeight=0, gcrefRegs=008A {rcx rbx rdi}, byrefRegs=0000
rol eax, 30
mov r11d, r14d
lea r14d, [r11+0x01]
- mov edi, r15d
- and edi, eax
- mov r13d, r15d
- ; gcrRegs -[r13]
- and r13d, r9d
- or edi, r13d
+ mov edi, eax
+ and edi, r9d
mov r13d, eax
- and r13d, r9d
+ ; gcrRegs -[r13]
+ or r13d, r9d
+ and r13d, r15d
or edi, r13d
mov r13d, ebp
rol r13d, 5
@@ -878,14 +864,12 @@ G_M42046_IG30: ; bbWeight=0, gcrefRegs=008A {rcx rbx rdi}, byrefRegs=0000
rol r15d, 30
mov r11d, r14d
lea r14d, [r11+0x01]
- mov edi, ebp
- and edi, r15d
- mov r13d, ebp
- ; gcrRegs -[r13]
- and r13d, eax
- or edi, r13d
+ mov edi, r15d
+ and edi, eax
mov r13d, r15d
- and r13d, eax
+ ; gcrRegs -[r13]
+ or r13d, eax
+ and r13d, ebp
or edi, r13d
mov r13d, esi
rol r13d, 5
@@ -900,16 +884,14 @@ G_M42046_IG30: ; bbWeight=0, gcrefRegs=008A {rcx rbx rdi}, byrefRegs=0000
lea r9d, [rdi+r9+D1FFAB1EH]
rol ebp, 30
mov r11d, r14d
- ;; size=246 bbWeight=0 PerfScore 0.00
-G_M42046_IG31: ; bbWeight=0, extend
lea r14d, [r11+0x01]
- mov edi, esi
- and edi, ebp
- mov r13d, esi
- and r13d, r15d
- or edi, r13d
+ mov edi, ebp
+ and edi, r15d
mov r13d, ebp
- and r13d, r15d
+ or r13d, r15d
+ ;; size=243 bbWeight=0 PerfScore 0.00
+G_M42046_IG31: ; bbWeight=0, extend
+ and r13d, esi
or edi, r13d
mov r13d, r9d
rol r13d, 5
@@ -923,7 +905,7 @@ G_M42046_IG31: ; bbWeight=0, extend
; gcrRegs -[rax]
lea eax, [rdi+rax+D1FFAB1EH]
jmp G_M42046_IG14
- ;; size=68 bbWeight=0 PerfScore 0.00
+ ;; size=48 bbWeight=0 PerfScore 0.00
G_M42046_IG32: ; bbWeight=0, gcrefRegs=800A {rcx rbx r15}, byrefRegs=0000 {}, byref
; gcrRegs +[r15]
cmp r13d, r10d
@@ -1061,7 +1043,7 @@ G_M42046_IG39: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 2833, prolog size 16, PerfScore 2365.84, instruction count 768, allocated bytes for code 2833 (MethodHash=64eb5bc1) for method Xunit.Sdk.Sha1Digest:ProcessBlock():this (Tier1)
+; Total bytes of code 2781, prolog size 16, PerfScore 2353.34, instruction count 750, allocated bytes for code 2781 (MethodHash=64eb5bc1) for method Xunit.Sdk.Sha1Digest:ProcessBlock():this (Tier1)
; ============================================================
Unwind Info:libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch
-20 (-11.83%) : 5028.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:CreateMissing(ushort):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (FullOpts)
@@ -16,11 +16,10 @@
;* V05 tmp4 [V05 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
; V06 tmp5 [V06,T04] ( 3, 3 ) byref -> rcx single-def "dup spill"
;* V07 tmp6 [V07 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-; V08 cse0 [V08,T08] ( 2, 1 ) ref -> rax "CSE #02: aggressive"
+; V08 cse0 [V08,T07] ( 2, 1 ) ref -> rax "CSE #02: aggressive"
; V09 cse1 [V09,T06] ( 3, 1.50) int -> r8 "CSE #03: aggressive"
-; V10 cse2 [V10,T07] ( 3, 1.50) int -> rdx "CSE #05: aggressive"
-; V11 cse3 [V11,T02] ( 4, 3 ) int -> rsi "CSE #01: aggressive"
-; V12 cse4 [V12,T05] ( 3, 1.50) byref -> rcx "CSE #04: aggressive"
+; V10 cse2 [V10,T02] ( 4, 3 ) int -> rsi "CSE #01: aggressive"
+; V11 cse3 [V11,T05] ( 3, 1.50) byref -> rcx "CSE #04: aggressive"
;
; Lcl frame size = 40
@@ -56,14 +55,8 @@ G_M29564_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
or r8d, r10d
or r8d, 1
mov word ptr [rdx], r8w
- movzx rdx, word ptr [rcx]
- ; byrRegs -[rdx]
- mov r8d, edx
- and r8d, 0xF000
- and edx, 0xFFE
- or edx, r8d
- mov word ptr [rcx], dx
- ;; size=96 bbWeight=0.50 PerfScore 6.88
+ and word ptr [rcx], 0xFFFE
+ ;; size=76 bbWeight=0.50 PerfScore 6.38
G_M29564_IG04: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 40
pop rbx
@@ -72,7 +65,7 @@ G_M29564_IG04: ; bbWeight=0.50, epilog, nogc, extend
;; size=7 bbWeight=0.50 PerfScore 1.12
G_M29564_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rax]
- ; byrRegs -[rcx]
+ ; byrRegs -[rcx rdx]
mov rax, 0xD1FFAB1E ; const ptr
mov rax, gword ptr [rax]
; gcrRegs +[rax]
@@ -98,7 +91,7 @@ G_M29564_IG08: ; bbWeight=0.50, epilog, nogc, extend
ret
;; size=7 bbWeight=0.50 PerfScore 1.12
-; Total bytes of code 169, prolog size 6, PerfScore 17.62, instruction count 47, allocated bytes for code 169 (MethodHash=67038c83) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:CreateMissing(ushort):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (FullOpts)
+; Total bytes of code 149, prolog size 6, PerfScore 17.12, instruction count 42, allocated bytes for code 149 (MethodHash=67038c83) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:CreateMissing(ushort):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (FullOpts)
; ============================================================
Unwind Info:-16 (-7.77%) : 19613.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+MissingTokenWithTrivia:SetDiagnostics(Microsoft.CodeAnalysis.DiagnosticInfo[]):Microsoft.CodeAnalysis.GreenNode:this (FullOpts)
@@ -27,8 +27,7 @@
;* V16 tmp14 [V16 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
; V17 tmp15 [V17,T07] ( 2, 4 ) ref -> r9 single-def "argument with side effect"
; V18 cse0 [V18,T10] ( 3, 3 ) int -> rdx "CSE #01: aggressive"
-; V19 cse1 [V19,T11] ( 3, 3 ) int -> rax "CSE #03: aggressive"
-; V20 cse2 [V20,T09] ( 3, 3 ) byref -> rbx "CSE #02: aggressive"
+; V19 cse1 [V19,T09] ( 3, 3 ) byref -> rbx "CSE #02: aggressive"
;
; Lcl frame size = 40
@@ -126,15 +125,10 @@ G_M59497_IG05: ; bbWeight=0.50, gcrefRegs=C000 {r14 r15}, byrefRegs=0008
; byrRegs -[rcx]
;; size=24 bbWeight=0.50 PerfScore 2.62
G_M59497_IG06: ; bbWeight=1, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, byref
- movzx rax, word ptr [rbx]
- mov ecx, eax
- and ecx, 0xF000
- and eax, 0xFFE
- or eax, ecx
- mov word ptr [rbx], ax
+ and word ptr [rbx], 0xFFFE
mov rax, r15
; gcrRegs +[rax]
- ;; size=24 bbWeight=1 PerfScore 4.25
+ ;; size=8 bbWeight=1 PerfScore 3.25
G_M59497_IG07: ; bbWeight=1, epilog, nogc, extend
add rsp, 40
pop rbx
@@ -146,7 +140,7 @@ G_M59497_IG07: ; bbWeight=1, epilog, nogc, extend
ret
;; size=13 bbWeight=1 PerfScore 4.25
-; Total bytes of code 206, prolog size 12, PerfScore 44.00, instruction count 64, allocated bytes for code 206 (MethodHash=d2901796) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+MissingTokenWithTrivia:SetDiagnostics(Microsoft.CodeAnalysis.DiagnosticInfo[]):Microsoft.CodeAnalysis.GreenNode:this (FullOpts)
+; Total bytes of code 190, prolog size 12, PerfScore 43.00, instruction count 59, allocated bytes for code 190 (MethodHash=d2901796) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+MissingTokenWithTrivia:SetDiagnostics(Microsoft.CodeAnalysis.DiagnosticInfo[]):Microsoft.CodeAnalysis.GreenNode:this (FullOpts)
; ============================================================
Unwind Info:-8 (-7.08%) : 33981.dasm - ILLink.RoslynAnalyzer.ITypeSymbolExtensions:IsTypeInterestingForDataflow(Microsoft.CodeAnalysis.ITypeSymbol,bool):bool (FullOpts)
@@ -11,7 +11,7 @@
; V00 arg0 [V00,T00] ( 4, 3.50) ref -> rbx class-hnd single-def <Microsoft.CodeAnalysis.ITypeSymbol>
; V01 arg1 [V01,T01] ( 3, 2.50) ubyte -> rsi single-def
; V02 loc0 [V02,T02] ( 3, 1.50) ref -> rax class-hnd single-def <Microsoft.CodeAnalysis.INamedTypeSymbol>
-; V03 loc1 [V03,T03] ( 3, 1.50) int -> rax single-def
+; V03 loc1 [V03,T03] ( 2, 1 ) int -> rax single-def
; V04 OutArgs [V04 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <UNNAMED>
;
; Lcl frame size = 40
@@ -52,13 +52,10 @@ G_M31917_IG04: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
call [ILLink.RoslynAnalyzer.ITypeSymbolExtensions:GetFlags(Microsoft.CodeAnalysis.INamedTypeSymbol):int]
; gcrRegs -[rax rcx]
; gcr arg pop 0
- mov ecx, eax
- and ecx, 1
- and eax, 2
- or eax, ecx
+ test al, 3
setne al
movzx rax, al
- ;; size=48 bbWeight=0.50 PerfScore 3.88
+ ;; size=40 bbWeight=0.50 PerfScore 3.50
G_M31917_IG05: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 40
pop rbx
@@ -84,7 +81,7 @@ G_M31917_IG09: ; bbWeight=0.25, epilog, nogc, extend
ret
;; size=7 bbWeight=0.25 PerfScore 0.56
-; Total bytes of code 113, prolog size 6, PerfScore 15.00, instruction count 39, allocated bytes for code 113 (MethodHash=adc78352) for method ILLink.RoslynAnalyzer.ITypeSymbolExtensions:IsTypeInterestingForDataflow(Microsoft.CodeAnalysis.ITypeSymbol,bool):bool (FullOpts)
+; Total bytes of code 105, prolog size 6, PerfScore 14.62, instruction count 36, allocated bytes for code 105 (MethodHash=adc78352) for method ILLink.RoslynAnalyzer.ITypeSymbolExtensions:IsTypeInterestingForDataflow(Microsoft.CodeAnalysis.ITypeSymbol,bool):bool (FullOpts)
; ============================================================
Unwind Info:-16 (-4.43%) : 4943.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:ConvertToKeyword(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (FullOpts)
@@ -45,18 +45,17 @@
; V34 tmp30 [V34,T07] ( 3, 3 ) byref -> rcx single-def "dup spill"
;* V35 tmp31 [V35 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V36 tmp32 [V36 ] ( 0, 0 ) ref -> zero-ref "field V03._node (fldOffset=0x0)" P-INDEP
-; V37 tmp33 [V37,T19] ( 2, 1 ) ref -> r14 single-def "field V12._node (fldOffset=0x0)" P-INDEP
-; V38 tmp34 [V38,T20] ( 2, 1 ) ref -> r8 single-def "field V14._node (fldOffset=0x0)" P-INDEP
+; V37 tmp33 [V37,T18] ( 2, 1 ) ref -> r14 single-def "field V12._node (fldOffset=0x0)" P-INDEP
+; V38 tmp34 [V38,T19] ( 2, 1 ) ref -> r8 single-def "field V14._node (fldOffset=0x0)" P-INDEP
; V39 tmp35 [V39,T11] ( 4, 2 ) ref -> rdi single-def "field V18._node (fldOffset=0x0)" P-INDEP
; V40 tmp36 [V40,T12] ( 4, 2 ) ref -> rsi single-def "field V20._node (fldOffset=0x0)" P-INDEP
; V41 tmp37 [V41,T09] ( 3, 2.25) ref -> rax single-def "argument with side effect"
; V42 cse0 [V42,T04] ( 4, 3 ) long -> rbp "CSE #02: aggressive"
; V43 cse1 [V43,T03] ( 6, 3 ) long -> rsi multi-def "CSE #03: aggressive"
; V44 cse2 [V44,T16] ( 3, 1.50) int -> rdx "CSE #05: conservative"
-; V45 cse3 [V45,T17] ( 3, 1.50) int -> rax "CSE #07: conservative"
-; V46 cse4 [V46,T05] ( 4, 3 ) long -> rdi "CSE #01: aggressive"
-; V47 rat0 [V47,T02] ( 5, 3.75) ref -> rsi "replacement local"
-; V48 rat1 [V48,T18] ( 3, 1.25) long -> rcx "CSE for expectedClsNode"
+; V45 cse3 [V45,T05] ( 4, 3 ) long -> rdi "CSE #01: aggressive"
+; V46 rat0 [V46,T02] ( 5, 3.75) ref -> rsi "replacement local"
+; V47 rat1 [V47,T17] ( 3, 1.25) long -> rcx "CSE for expectedClsNode"
;
; Lcl frame size = 32
@@ -177,14 +176,9 @@ G_M12665_IG06: ; bbWeight=0.50, gcrefRegs=4048 {rbx rsi r14}, byrefRegs=0
G_M12665_IG07: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
lea rcx, bword ptr [r14+0x0E]
; byrRegs +[rcx]
- movzx rax, word ptr [rcx]
- mov edx, eax
- and edx, 0xF000
- and eax, 0xFFE
- or eax, edx
- mov word ptr [rcx], ax
+ and word ptr [rcx], 0xFFFE
jmp SHORT G_M12665_IG09
- ;; size=27 bbWeight=0.50 PerfScore 3.25
+ ;; size=11 bbWeight=0.50 PerfScore 2.75
G_M12665_IG08: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
; gcrRegs -[r14]
; byrRegs -[rcx]
@@ -276,7 +270,7 @@ G_M12665_IG13: ; bbWeight=0.50, epilog, nogc, extend
ret
;; size=11 bbWeight=0.50 PerfScore 1.88
-; Total bytes of code 361, prolog size 10, PerfScore 59.25, instruction count 115, allocated bytes for code 361 (MethodHash=b5e6ce86) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:ConvertToKeyword(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (FullOpts)
+; Total bytes of code 345, prolog size 10, PerfScore 58.75, instruction count 110, allocated bytes for code 345 (MethodHash=b5e6ce86) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:ConvertToKeyword(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken (FullOpts)
; ============================================================
Unwind Info:-47 (-3.69%) : 4861.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:.cctor() (FullOpts)
@@ -15,7 +15,7 @@
;* V04 tmp3 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewArr temp" <<unknown class>>
;* V05 tmp4 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewArr temp" <<unknown class>>
;* V06 tmp5 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewArr temp" <<unknown class>>
-; V07 tmp6 [V07,T48] ( 6, 12 ) ref -> rax class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+MissingTokenWithTrivia>
+; V07 tmp6 [V07,T47] ( 6, 12 ) ref -> rax class-hnd exact single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+MissingTokenWithTrivia>
; V08 tmp7 [V08,T05] ( 6, 96 ) ref -> r12 class-hnd exact "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken>
; V09 tmp8 [V09,T26] ( 2, 32 ) byref -> [rsp+0x68] spill-single-def "impAppendStmt"
; V10 tmp9 [V10,T00] ( 13,208 ) ref -> [rsp+0x60] class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+SyntaxTokenWithTrivia>
@@ -27,14 +27,14 @@
; V16 tmp15 [V16,T06] ( 5, 80 ) ref -> rax class-hnd exact "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken+MissingTokenWithTrivia>
; V17 tmp16 [V17,T30] ( 2, 32 ) byref -> rcx "impAppendStmt"
;* V18 tmp17 [V18 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V19 tmp18 [V19,T56] ( 3, 6 ) byref -> rcx single-def "dup spill"
+; V19 tmp18 [V19,T55] ( 3, 6 ) byref -> rcx single-def "dup spill"
;* V20 tmp19 [V20 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-; V21 tmp20 [V21,T57] ( 3, 6 ) byref -> rcx single-def "dup spill"
+; V21 tmp20 [V21,T56] ( 3, 6 ) byref -> rcx single-def "dup spill"
;* V22 tmp21 [V22 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
;* V23 tmp22 [V23 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V24 tmp23 [V24,T09] ( 3, 48 ) byref -> rcx "dup spill"
;* V25 tmp24 [V25 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-;* V26 tmp25 [V26,T47] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxTrivia>
+;* V26 tmp25 [V26,T46] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxTrivia>
; V27 tmp26 [V27,T04] ( 7,112 ) ref -> [rsp+0x38] class-hnd exact spill-single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxTrivia>
;* V28 tmp27 [V28 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
; V29 tmp28 [V29,T10] ( 3, 48 ) byref -> rcx "dup spill"
@@ -73,29 +73,27 @@
; V62 tmp61 [V62,T21] ( 3, 48 ) ref -> rcx "arr expr"
; V63 tmp62 [V63,T22] ( 3, 48 ) ref -> rcx "arr expr"
; V64 tmp63 [V64,T23] ( 3, 48 ) ref -> rcx "arr expr"
-; V65 cse0 [V65,T24] ( 5, 40 ) int -> [rsp+0x74] spill-single-def "CSE #10: moderate"
-; V66 cse1 [V66,T35] ( 2, 16 ) ref -> r8 "CSE #09: moderate"
-; V67 cse2 [V67,T37] ( 3, 24 ) int -> rdx "CSE #06: moderate"
-; V68 cse3 [V68,T38] ( 3, 24 ) int -> rdx "CSE #11: moderate"
-; V69 cse4 [V69,T39] ( 3, 24 ) int -> rdx "CSE #17: moderate"
-; V70 cse5 [V70,T40] ( 3, 24 ) int -> rdx "CSE #21: moderate"
-; V71 cse6 [V71,T41] ( 3, 24 ) int -> r10 "CSE #26: moderate"
-; V72 cse7 [V72,T42] ( 3, 24 ) int -> r8 "CSE #28: moderate"
+; V65 cse0 [V65,T24] ( 5, 40 ) int -> [rsp+0x74] spill-single-def "CSE #09: moderate"
+; V66 cse1 [V66,T35] ( 2, 16 ) ref -> r8 "CSE #08: moderate"
+; V67 cse2 [V67,T37] ( 3, 24 ) int -> rdx "CSE #05: moderate"
+; V68 cse3 [V68,T38] ( 3, 24 ) int -> rdx "CSE #10: moderate"
+; V69 cse4 [V69,T39] ( 3, 24 ) int -> rdx "CSE #16: moderate"
+; V70 cse5 [V70,T40] ( 3, 24 ) int -> rdx "CSE #20: moderate"
+; V71 cse6 [V71,T41] ( 3, 24 ) int -> r10 "CSE #25: moderate"
+; V72 cse7 [V72,T42] ( 3, 24 ) int -> r10 "CSE #12: moderate"
; V73 cse8 [V73,T43] ( 3, 24 ) int -> r10 "CSE #13: moderate"
-; V74 cse9 [V74,T44] ( 3, 24 ) int -> r10 "CSE #14: moderate"
-; V75 cse10 [V75,T45] ( 3, 24 ) int -> r10 "CSE #19: moderate"
-; V76 cse11 [V76,T46] ( 3, 24 ) int -> r8 "CSE #23: moderate"
-; V77 cse12 [V77,T58] ( 3, 3 ) int -> rdx "CSE #02: moderate"
-; V78 cse13 [V78,T59] ( 3, 3 ) int -> rdx "CSE #04: moderate"
-; V79 cse14 [V79,T25] ( 4, 32 ) long -> r12 "CSE #15: moderate"
-; V80 cse15 [V80,T49] ( 3, 10 ) long -> rsi "CSE #05: moderate"
-; V81 cse16 [V81,T50] ( 3, 10 ) long -> rdi "CSE #07: moderate"
-; V82 cse17 [V82,T51] ( 3, 10 ) long -> rbp "CSE #16: moderate"
-; V83 cse18 [V83,T52] ( 3, 10 ) long -> r14 "CSE #20: moderate"
-; V84 cse19 [V84,T53] ( 3