-
Notifications
You must be signed in to change notification settings - Fork 4.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
JIT: Allow jump-to-next-block removal for blocks with alignment #97011
Conversation
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch Issue DetailsFixes #96998. The jump-to-next-block removal optimization currently passes on jumps with alignment padding behind them (see
|
/azp run runtime-coreclr jitstress |
Azure Pipelines successfully started running 1 pipeline(s). |
SPMI diffs targeting Windows x64 with loop alignment on: MinOpts, 1,518,221 FullOpts). MISSED contexts: 5,386 (0.21%) Overall (-24,857 bytes)
FullOpts (-24,857 bytes)
Example diffsaspnet.run.windows.x64.checked.mch-21 (-18.10%) : 61978.dasm - System.Linq.Enumerable+RangeIterator:Fill(System.Span`1[int],int) (FullOpts)@@ -53,15 +53,14 @@ G_M33525_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byr
cmp ecx, 8
jl SHORT G_M33525_IG06
;; size=18 bbWeight=1 PerfScore 6.00
-G_M33525_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0101 {rax r8}, byref, isz, align
+G_M33525_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0101 {rax r8}, byref, isz
vpbroadcastd ymm0, edx
vpaddd ymm0, ymm0, ymmword ptr [reloc @RWD00]
vmovups ymm1, ymmword ptr [reloc @RWD32]
lea rdx, bword ptr [r8-0x20]
; byrRegs +[rdx]
- jmp SHORT G_M33525_IG04
- align [15 bytes for IG04]
- ;; size=43 bbWeight=0.50 PerfScore 5.25
+ align [0 bytes for IG04]
+ ;; size=26 bbWeight=0.50 PerfScore 4.25
G_M33525_IG04: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0105 {rax rdx r8}, loop=IG04, byref, isz
vmovups ymmword ptr [rax], ymm0
vpaddd ymm0, ymm0, ymm1
@@ -73,12 +72,12 @@ G_M33525_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0101 {rax r8
; byrRegs -[rdx]
vmovd edx, xmm0
;; size=4 bbWeight=0.50 PerfScore 1.00
-G_M33525_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0101 {rax r8}, byref, isz, align
+G_M33525_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0101 {rax r8}, byref, isz
cmp rax, r8
jae SHORT G_M33525_IG08
jmp SHORT G_M33525_IG07
- align [4 bytes for IG07]
- ;; size=11 bbWeight=1 PerfScore 3.50
+ align [0 bytes for IG07]
+ ;; size=7 bbWeight=1 PerfScore 3.25
G_M33525_IG07: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0101 {rax r8}, loop=IG07, byref, isz
lea ecx, [rdx+0x01]
mov dword ptr [rax], edx
@@ -96,7 +95,7 @@ RWD00 dq 0000000100000000h, 0000000300000002h, 0000000500000004h, 000000070000
RWD32 dq 0000000800000008h, 0000000800000008h, 0000000800000008h, 0000000800000008h
-; Total bytes of code 116, prolog size 3, PerfScore 58.68, instruction count 31, allocated bytes for code 116 (MethodHash=e72f7d0a) for method System.Linq.Enumerable+RangeIterator:Fill(System.Span`1[int],int) (FullOpts)
+; Total bytes of code 95, prolog size 3, PerfScore 55.33, instruction count 30, allocated bytes for code 95 (MethodHash=e72f7d0a) for method System.Linq.Enumerable+RangeIterator:Fill(System.Span`1[int],int) (FullOpts)
; ============================================================
Unwind Info:
-16 (-9.20%) : 103574.dasm - System.Diagnostics.Tracing.EventSource:TrimEventDescriptors(byref) (Tier1-OSR)@@ -36,9 +36,8 @@ G_M19599_IG02: ; bbWeight=10.53, gcrefRegs=0000 {}, byrefRegs=0008 {rbx},
G_M19599_IG03: ; bbWeight=7.02, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz, align
mov rsi, gword ptr [rbx]
; gcrRegs +[rsi]
- jmp SHORT G_M19599_IG04
- align [15 bytes for IG04]
- ;; size=20 bbWeight=7.02 PerfScore 28.07
+ align [1 bytes for IG04]
+ ;; size=4 bbWeight=7.02 PerfScore 15.79
G_M19599_IG04: ; bbWeight=94.74, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx}, byref, isz
dec edx
mov rcx, rsi
@@ -104,7 +103,7 @@ G_M19599_IG09: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 174, prolog size 36, PerfScore 1362.58, instruction count 47, allocated bytes for code 174 (MethodHash=95a5b370) for method System.Diagnostics.Tracing.EventSource:TrimEventDescriptors(byref) (Tier1-OSR)
+; Total bytes of code 158, prolog size 36, PerfScore 1348.69, instruction count 46, allocated bytes for code 158 (MethodHash=95a5b370) for method System.Diagnostics.Tracing.EventSource:TrimEventDescriptors(byref) (Tier1-OSR)
; ============================================================
Unwind Info:
-9 (-8.33%) : 113462.dasm - Newtonsoft.Json.Utilities.DateTimeUtils:CopyIntToCharArray(ushort[],int,int,int) (FullOpts)@@ -25,16 +25,15 @@ G_M20914_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
sub rsp, 32
mov r10d, edx
;; size=8 bbWeight=1 PerfScore 1.50
-G_M20914_IG02: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz, align
+G_M20914_IG02: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rcx]
lea eax, [r9-0x01]
mov r11d, eax
test r9d, r9d
je SHORT G_M20914_IG04
mov ebx, dword ptr [rcx+0x08]
- jmp SHORT G_M20914_IG03
- align [7 bytes for IG03]
- ;; size=24 bbWeight=1 PerfScore 6.00
+ align [0 bytes for IG03]
+ ;; size=15 bbWeight=1 PerfScore 4.00
G_M20914_IG03: ; bbWeight=4, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, loop=IG03, byref, isz
lea eax, [r10+r11]
cmp eax, ebx
@@ -70,7 +69,7 @@ G_M20914_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 108, prolog size 8, PerfScore 66.05, instruction count 36, allocated bytes for code 108 (MethodHash=fbd3ae4d) for method Newtonsoft.Json.Utilities.DateTimeUtils:CopyIntToCharArray(ushort[],int,int,int) (FullOpts)
+; Total bytes of code 99, prolog size 8, PerfScore 63.15, instruction count 35, allocated bytes for code 99 (MethodHash=fbd3ae4d) for method Newtonsoft.Json.Utilities.DateTimeUtils:CopyIntToCharArray(ushort[],int,int,int) (FullOpts)
; ============================================================
Unwind Info:
+11 (+1.17%) : 57545.dasm - System.Text.Ascii:NarrowUtf16ToAscii(ulong,ulong,ulong):ulong (Tier1)@@ -114,6 +114,7 @@ G_M6063_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
vmovups zmm1, zmmword ptr [reloc @RWD00]
vptestmw k1, zmm0, zmm1
kortestd k1, k1
+ ;; NOP compensation instructions of 3 bytes.
jne G_M6063_IG42
mov r10, rdx
; byrRegs +[r10]
@@ -124,26 +125,27 @@ G_M6063_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
mov r9d, 32
test dl, 32
jne SHORT G_M6063_IG06
- ;; size=74 bbWeight=0.50 PerfScore 12.08
+ ;; size=77 bbWeight=0.50 PerfScore 12.08
G_M6063_IG05: ; bbWeight=0.33, gcrefRegs=0000 {}, byrefRegs=0401 {rax r10}, byref
vmovups zmm0, zmmword ptr [rax+0x40]
vptestmw k1, zmm0, zmm1
kortestd k1, k1
- jne G_M6063_IG09
+ ;; NOP compensation instructions of 3 bytes.
+ jne SHORT G_M6063_IG09
+ ;; NOP compensation instructions of 4 bytes.
vpmovwb zmm0, zmm2
vpmovwb zmm0, zmm0
vinserti64x4 zmm0, zmm2, ymm0, 1
vmovups ymmword ptr [r10+0x20], ymm0
- ;; size=49 bbWeight=0.33 PerfScore 6.36
+ ;; size=52 bbWeight=0.33 PerfScore 6.36
G_M6063_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0401 {rax r10}, byref, isz
mov r9, rdx
and r9, 63
neg r9
add r9, 64
lea r11, [r8-0x40]
- jmp SHORT G_M6063_IG07
align [0 bytes for IG07]
- ;; size=20 bbWeight=0.50 PerfScore 1.76
+ ;; size=18 bbWeight=0.50 PerfScore 0.76
G_M6063_IG07: ; bbWeight=5.00, gcrefRegs=0000 {}, byrefRegs=0401 {rax r10}, byref, isz
vmovups zmm0, zmmword ptr [rax+2*r9]
vmovups zmm2, zmmword ptr [rax+2*r9+0x40]
@@ -151,8 +153,9 @@ G_M6063_IG07: ; bbWeight=5.00, gcrefRegs=0000 {}, byrefRegs=0401 {rax r10
vpternlogd zmm3, zmm2, zmm1, -88
vptestmw k1, zmm3, zmm3
kortestd k1, k1
+ ;; NOP compensation instructions of 3 bytes.
jne SHORT G_M6063_IG11
- ;; size=41 bbWeight=5.00 PerfScore 68.76
+ ;; size=44 bbWeight=5.00 PerfScore 68.76
G_M6063_IG08: ; bbWeight=4.50, gcrefRegs=0000 {}, byrefRegs=0401 {rax r10}, loop=IG07, byref, isz
vpmovwb zmm0, zmm0
vpmovwb zmm2, zmm2
@@ -173,8 +176,9 @@ G_M6063_IG11: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0400 {r10}, b
; byrRegs +[r10]
vptestmw k1, zmm0, zmm1
kortestd k1, k1
+ ;; NOP compensation instructions of 3 bytes.
jne SHORT G_M6063_IG09
- ;; size=13 bbWeight=0.50 PerfScore 2.50
+ ;; size=16 bbWeight=0.50 PerfScore 2.50
G_M6063_IG12: ; bbWeight=0.27, gcrefRegs=0000 {}, byrefRegs=0400 {r10}, byref, isz
vpmovwb zmm0, zmm1
vpmovwb zmm0, zmm0
@@ -183,11 +187,11 @@ G_M6063_IG12: ; bbWeight=0.27, gcrefRegs=0000 {}, byrefRegs=0400 {r10}, b
add r9, 32
jmp SHORT G_M6063_IG09
;; size=31 bbWeight=0.27 PerfScore 3.37
-G_M6063_IG13: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M6063_IG13: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz, align
; byrRegs -[r10]
jmp G_M6063_IG20
- align [0 bytes for IG22]
- ;; size=5 bbWeight=0.00 PerfScore 0.00
+ align [1 bytes for IG22]
+ ;; size=6 bbWeight=0.00 PerfScore 0.00
G_M6063_IG14: ; bbWeight=0.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
cmp r8, 64
jae G_M6063_IG38
@@ -407,7 +411,7 @@ G_M6063_IG44: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0800 {r11}, byre
RWD00 dq FF80FF80FF80FF80h, FF80FF80FF80FF80h, FF80FF80FF80FF80h, FF80FF80FF80FF80h, FF80FF80FF80FF80h, FF80FF80FF80FF80h, FF80FF80FF80FF80h, FF80FF80FF80FF80h
-; Total bytes of code 943, prolog size 3, PerfScore 307.44, instruction count 210, allocated bytes for code 955 (MethodHash=53fae850) for method System.Text.Ascii:NarrowUtf16ToAscii(ulong,ulong,ulong):ulong (Tier1)
+; Total bytes of code 954, prolog size 3, PerfScore 306.33, instruction count 209, allocated bytes for code 954 (MethodHash=53fae850) for method System.Text.Ascii:NarrowUtf16ToAscii(ulong,ulong,ulong):ulong (Tier1)
; ============================================================
Unwind Info:
+4 (+1.38%) : 43057.dasm - System.Threading.ThreadPoolBoundHandle:FreeNativeOverlappedPortableCore(ulong):this (Tier1)@@ -40,7 +40,7 @@ G_M56988_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; gcrRegs +[rsi]
mov rbx, rdx
;; size=15 bbWeight=1 PerfScore 3.75
-G_M56988_IG02: ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
+G_M56988_IG02: ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz, align
test rbx, rbx
je G_M56988_IG14
mov rcx, rbx
@@ -53,12 +53,12 @@ G_M56988_IG02: ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byr
; gcrRegs +[rdx]
test rdx, rdx
je SHORT G_M56988_IG12
+ ;; NOP compensation instructions of 4 bytes.
cmp byte ptr [rdx], dl
lea rcx, bword ptr [rdx+0x18]
; byrRegs +[rcx]
- jmp SHORT G_M56988_IG03
- align [0 bytes for IG03]
- ;; size=45 bbWeight=1 PerfScore 17.25
+ align [2 bytes for IG03]
+ ;; size=49 bbWeight=1 PerfScore 15.50
G_M56988_IG03: ; bbWeight=8, gcrefRegs=0004 {rdx}, byrefRegs=0002 {rcx}, loop=IG03, byref, isz
; gcrRegs -[rax rsi]
mov eax, dword ptr [rcx]
@@ -186,7 +186,7 @@ G_M56988_IG15: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=71 bbWeight=0 PerfScore 0.00
-; Total bytes of code 289, prolog size 15, PerfScore 451.08, instruction count 85, allocated bytes for code 293 (MethodHash=6c912163) for method System.Threading.ThreadPoolBoundHandle:FreeNativeOverlappedPortableCore(ulong):this (Tier1)
+; Total bytes of code 293, prolog size 15, PerfScore 449.33, instruction count 84, allocated bytes for code 293 (MethodHash=6c912163) for method System.Threading.ThreadPoolBoundHandle:FreeNativeOverlappedPortableCore(ulong):this (Tier1)
; ============================================================
Unwind Info:
+4 (+1.38%) : 8490.dasm - System.Threading.ThreadPoolBoundHandle:FreeNativeOverlappedPortableCore(ulong):this (Tier1)@@ -40,7 +40,7 @@ G_M56988_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
; gcrRegs +[rsi]
mov rbx, rdx
;; size=15 bbWeight=1 PerfScore 3.75
-G_M56988_IG02: ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
+G_M56988_IG02: ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz, align
test rbx, rbx
je G_M56988_IG14
mov rcx, rbx
@@ -53,12 +53,12 @@ G_M56988_IG02: ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byr
; gcrRegs +[rdx]
test rdx, rdx
je SHORT G_M56988_IG12
+ ;; NOP compensation instructions of 4 bytes.
cmp byte ptr [rdx], dl
lea rcx, bword ptr [rdx+0x18]
; byrRegs +[rcx]
- jmp SHORT G_M56988_IG03
- align [0 bytes for IG03]
- ;; size=45 bbWeight=1 PerfScore 17.25
+ align [2 bytes for IG03]
+ ;; size=49 bbWeight=1 PerfScore 15.50
G_M56988_IG03: ; bbWeight=8, gcrefRegs=0004 {rdx}, byrefRegs=0002 {rcx}, loop=IG03, byref, isz
; gcrRegs -[rax rsi]
mov eax, dword ptr [rcx]
@@ -186,7 +186,7 @@ G_M56988_IG15: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=71 bbWeight=0 PerfScore 0.00
-; Total bytes of code 289, prolog size 15, PerfScore 451.08, instruction count 85, allocated bytes for code 293 (MethodHash=6c912163) for method System.Threading.ThreadPoolBoundHandle:FreeNativeOverlappedPortableCore(ulong):this (Tier1)
+; Total bytes of code 293, prolog size 15, PerfScore 449.33, instruction count 84, allocated bytes for code 293 (MethodHash=6c912163) for method System.Threading.ThreadPoolBoundHandle:FreeNativeOverlappedPortableCore(ulong):this (Tier1)
; ============================================================
Unwind Info:
benchmarks.run.windows.x64.checked.mch-16 (-26.23%) : 5201.dasm - System.Tests.Perf_Double:IsNaN(double):ubyte:this (FullOpts)@@ -24,9 +24,8 @@ G_M39357_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
xor eax, eax
xor ecx, ecx
vmovsd xmm0, qword ptr [reloc @RWD00]
- jmp SHORT G_M39357_IG03
- align [15 bytes for IG03]
- ;; size=29 bbWeight=1 PerfScore 5.50
+ align [1 bytes for IG03]
+ ;; size=13 bbWeight=1 PerfScore 3.75
G_M39357_IG03: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, loop=IG03, byref, isz
xor edx, edx
vucomisd xmm1, xmm1
@@ -44,7 +43,7 @@ G_M39357_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
RWD00 dq 3FF0000000000000h ; 1
-; Total bytes of code 61, prolog size 3, PerfScore 46.60, instruction count 16, allocated bytes for code 61 (MethodHash=c11e6642) for method System.Tests.Perf_Double:IsNaN(double):ubyte:this (FullOpts)
+; Total bytes of code 45, prolog size 3, PerfScore 43.25, instruction count 15, allocated bytes for code 45 (MethodHash=c11e6642) for method System.Tests.Perf_Double:IsNaN(double):ubyte:this (FullOpts)
; ============================================================
Unwind Info:
-16 (-26.23%) : 14246.dasm - System.Tests.Perf_Single:IsNaN(float):ubyte:this (FullOpts)@@ -24,9 +24,8 @@ G_M12727_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
xor eax, eax
xor ecx, ecx
vmovss xmm0, dword ptr [reloc @RWD00]
- jmp SHORT G_M12727_IG03
- align [15 bytes for IG03]
- ;; size=29 bbWeight=1 PerfScore 5.50
+ align [1 bytes for IG03]
+ ;; size=13 bbWeight=1 PerfScore 3.75
G_M12727_IG03: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, loop=IG03, byref, isz
xor edx, edx
vucomiss xmm1, xmm1
@@ -44,7 +43,7 @@ G_M12727_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
RWD00 dd 3F800000h ; 1
-; Total bytes of code 61, prolog size 3, PerfScore 46.60, instruction count 16, allocated bytes for code 61 (MethodHash=31ffce48) for method System.Tests.Perf_Single:IsNaN(float):ubyte:this (FullOpts)
+; Total bytes of code 45, prolog size 3, PerfScore 43.25, instruction count 15, allocated bytes for code 45 (MethodHash=31ffce48) for method System.Tests.Perf_Single:IsNaN(float):ubyte:this (FullOpts)
; ============================================================
Unwind Info:
-10 (-21.74%) : 14837.dasm - System.Formats.Tar.TarHeader:g__CountDigits|115_0(int):int (FullOpts)@@ -16,11 +16,10 @@
G_M44852_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
;; size=0 bbWeight=1 PerfScore 0.00
-G_M44852_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz, align
+G_M44852_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov r8d, 1
- jmp SHORT G_M44852_IG03
- align [8 bytes for IG03]
- ;; size=16 bbWeight=1 PerfScore 2.25
+ align [0 bytes for IG03]
+ ;; size=6 bbWeight=1 PerfScore 0.25
G_M44852_IG03: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov edx, 0xD1FFAB1E
mov eax, edx
@@ -42,7 +41,7 @@ G_M44852_IG06: ; bbWeight=1, epilog, nogc, extend
ret
;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 46, prolog size 0, PerfScore 65.10, instruction count 15, allocated bytes for code 46 (MethodHash=029a50cb) for method System.Formats.Tar.TarHeader:<GenerateExtendedAttributesDataStream>g__CountDigits|115_0(int):int (FullOpts)
+; Total bytes of code 36, prolog size 0, PerfScore 62.10, instruction count 14, allocated bytes for code 36 (MethodHash=029a50cb) for method System.Formats.Tar.TarHeader:<GenerateExtendedAttributesDataStream>g__CountDigits|115_0(int):int (FullOpts)
; ============================================================
Unwind Info:
+5 (+1.89%) : 13046.dasm - System.Buffers.Text.Utf8Parser:TryParseUInt64X(System.ReadOnlySpan`1[ubyte],byref,byref):ubyte (FullOpts)@@ -77,12 +77,14 @@ G_M33350_IG04: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0305 {rax rdx r
G_M33350_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0104 {rdx r8}, byref, isz
; byrRegs -[rax r9]
jmp SHORT G_M33350_IG11
+ ;; NOP compensation instructions of 3 bytes.
align [0 bytes for IG08]
- ;; size=2 bbWeight=0.50 PerfScore 1.00
+ ;; size=5 bbWeight=0.50 PerfScore 1.00
G_M33350_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0104 {rdx r8}, byref
mov dword ptr [r8], ebx
jmp SHORT G_M33350_IG14
- ;; size=5 bbWeight=0.50 PerfScore 1.50
+ ;; NOP compensation instructions of 3 bytes.
+ ;; size=8 bbWeight=0.50 PerfScore 1.50
G_M33350_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0305 {rax rdx r8 r9}, byref
; byrRegs +[rax r9]
mov r10d, 1
@@ -99,11 +101,10 @@ G_M33350_IG08: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0305 {rax rdx r
cmp r10d, 16
jl SHORT G_M33350_IG08
;; size=36 bbWeight=4 PerfScore 31.00
-G_M33350_IG09: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0305 {rax rdx r8 r9}, byref, isz
+G_M33350_IG09: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0305 {rax rdx r8 r9}, byref, isz, align
mov r10d, 16
- jmp SHORT G_M33350_IG10
- align [0 bytes for IG10]
- ;; size=8 bbWeight=0.50 PerfScore 1.12
+ align [1 bytes for IG10]
+ ;; size=7 bbWeight=0.50 PerfScore 0.25
G_M33350_IG10: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0305 {rax rdx r8 r9}, loop=IG10, byref, isz
mov ebx, r10d
movzx rbx, byte ptr [rax+rbx]
@@ -159,7 +160,7 @@ G_M33350_IG18: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
ret
;; size=7 bbWeight=0.50 PerfScore 1.12
-; Total bytes of code 264, prolog size 6, PerfScore 150.13, instruction count 80, allocated bytes for code 270 (MethodHash=083e7db9) for method System.Buffers.Text.Utf8Parser:TryParseUInt64X(System.ReadOnlySpan`1[ubyte],byref,byref):ubyte (FullOpts)
+; Total bytes of code 269, prolog size 6, PerfScore 149.15, instruction count 79, allocated bytes for code 269 (MethodHash=083e7db9) for method System.Buffers.Text.Utf8Parser:TryParseUInt64X(System.ReadOnlySpan`1[ubyte],byref,byref):ubyte (FullOpts)
; ============================================================
Unwind Info:
+8 (+2.03%) : 20754.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:LazyMethodChecks():this (FullOpts)@@ -61,6 +61,7 @@ G_M360_IG03: ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, by
G_M360_IG04: ; bbWeight=0.50, gcVars=0000000000000840 {V00 V01}, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, gcvars, byref, isz
cmp byte ptr [rbp-0x10], 0
jne SHORT G_M360_IG08
+ ;; NOP compensation instructions of 4 bytes.
lea rdx, [rbp-0x10]
mov rcx, rax
; gcrRegs +[rcx]
@@ -77,15 +78,14 @@ G_M360_IG04: ; bbWeight=0.50, gcVars=0000000000000840 {V00 V01}, gcrefReg
call [<unknown method>]
; gcrRegs -[rcx rdx]
; gcr arg pop 0
- ;; size=45 bbWeight=0.50 PerfScore 5.25
+ ;; size=49 bbWeight=0.50 PerfScore 5.25
G_M360_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov rcx, gword ptr [rbp+0x10]
; gcrRegs +[rcx]
lea rdx, bword ptr [rcx+0x6C]
; byrRegs +[rdx]
- jmp SHORT G_M360_IG06
align [0 bytes for IG06]
- ;; size=10 bbWeight=0.50 PerfScore 1.75
+ ;; size=8 bbWeight=0.50 PerfScore 0.75
G_M360_IG06: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0004 {rdx}, loop=IG06, byref, isz
; gcrRegs -[rcx]
mov eax, dword ptr [rdx]
@@ -94,12 +94,13 @@ G_M360_IG06: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0004 {rdx}, loop=
or r8d, 0x2000
cmp r8d, eax
je SHORT G_M360_IG13
+ ;; NOP compensation instructions of 4 bytes.
lock
cmpxchg dword ptr [rdx], r8d
cmp eax, dword ptr [rbp-0x14]
jne SHORT G_M360_IG06
- ;; size=30 bbWeight=4 PerfScore 103.00
-G_M360_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ ;; size=34 bbWeight=4 PerfScore 103.00
+G_M360_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz, align
; byrRegs -[rdx]
mov rax, 0xD1FFAB1E ; const ptr
mov rcx, gword ptr [rax]
@@ -110,8 +111,8 @@ G_M360_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov gword ptr [rbp-0x28], rax
; GC ptr vars +{V03}
jmp SHORT G_M360_IG09
- align [0 bytes for IG11]
- ;; size=25 bbWeight=0.50 PerfScore 4.12
+ align [2 bytes for IG11]
+ ;; size=27 bbWeight=0.50 PerfScore 4.12
G_M360_IG08: ; bbWeight=0, gcVars=0000000000000800 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rax]
; GC ptr vars -{V00 V03}
@@ -265,7 +266,7 @@ G_M360_IG24: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 395, prolog size 25, PerfScore 288.05, instruction count 125, allocated bytes for code 403 (MethodHash=9b5bfe97) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:LazyMethodChecks():this (FullOpts)
+; Total bytes of code 403, prolog size 25, PerfScore 287.05, instruction count 124, allocated bytes for code 403 (MethodHash=9b5bfe97) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:LazyMethodChecks():this (FullOpts)
; ============================================================
Unwind Info:
+4 (+2.65%) : 13077.dasm - System.Linq.Lookup`2[int,int]:Resize():this (FullOpts)@@ -30,11 +30,12 @@ G_M63754_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rbx, rcx
; gcrRegs +[rbx]
;; size=15 bbWeight=1 PerfScore 6.50
-G_M63754_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M63754_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz, align
imul esi, dword ptr [rbx+0x20], 2
jo G_M63754_IG07
add esi, 1
jo SHORT G_M63754_IG07
+ ;; NOP compensation instructions of 4 bytes.
movsxd rdx, esi
mov rcx, 0xD1FFAB1E ; <unknown class>
call CORINFO_HELP_NEWARR_1_OBJ
@@ -46,9 +47,8 @@ G_M63754_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
; gcrRegs +[rbp]
mov r14, rbp
; gcrRegs +[r14]
- jmp SHORT G_M63754_IG03
- align [0 bytes for IG03]
- ;; size=45 bbWeight=1 PerfScore 13.25
+ align [2 bytes for IG03]
+ ;; size=49 bbWeight=1 PerfScore 11.50
G_M63754_IG03: ; bbWeight=8, gcrefRegs=40A8 {rbx rbp rdi r14}, byrefRegs=0000 {}, loop=IG03, byref, isz
; gcrRegs -[rax]
mov r14, gword ptr [r14+0x18]
@@ -108,7 +108,7 @@ G_M63754_IG07: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 151, prolog size 15, PerfScore 361.50, instruction count 52, allocated bytes for code 155 (MethodHash=c33806f5) for method System.Linq.Lookup`2[int,int]:Resize():this (FullOpts)
+; Total bytes of code 155, prolog size 15, PerfScore 359.75, instruction count 51, allocated bytes for code 155 (MethodHash=c33806f5) for method System.Linq.Lookup`2[int,int]:Resize():this (FullOpts)
; ============================================================
Unwind Info:
benchmarks.run_pgo.windows.x64.checked.mch-8 (-17.39%) : 91022.dasm - PerfLabTests.LowLevelPerf:StaticIntPlus():this (Tier1-OSR)@@ -25,11 +25,10 @@ G_M55626_IG02: ; bbWeight=0.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
cmp eax, ecx
jge SHORT G_M55626_IG05
;; size=10 bbWeight=0.01 PerfScore 0.03
-G_M55626_IG03: ; bbWeight=0.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz, align
+G_M55626_IG03: ; bbWeight=0.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov rdx, 0xD1FFAB1E ; static handle
- jmp SHORT G_M55626_IG04
- align [6 bytes for IG04]
- ;; size=18 bbWeight=0.01 PerfScore 0.02
+ align [0 bytes for IG04]
+ ;; size=10 bbWeight=0.01 PerfScore 0.00
G_M55626_IG04: ; bbWeight=99.99, gcrefRegs=0000 {}, byrefRegs=0000 {}, loop=IG04, byref, isz
inc dword ptr [rdx]
inc eax
@@ -42,7 +41,7 @@ G_M55626_IG05: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ret
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 46, prolog size 4, PerfScore 454.63, instruction count 14, allocated bytes for code 46 (MethodHash=ce1726b5) for method PerfLabTests.LowLevelPerf:StaticIntPlus():this (Tier1-OSR)
+; Total bytes of code 38, prolog size 4, PerfScore 453.81, instruction count 13, allocated bytes for code 38 (MethodHash=ce1726b5) for method PerfLabTests.LowLevelPerf:StaticIntPlus():this (Tier1-OSR)
; ============================================================
Unwind Info:
-2 (-5.41%) : 65907.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PENestedNamespaceSymbol:get_ContainingPEModule():Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEModuleSymbol:this (Tier1)@@ -20,9 +20,8 @@ G_M57317_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M57317_IG02: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rcx]
mov rax, 0xD1FFAB1E ; Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PENestedNamespaceSymbol
- jmp SHORT G_M57317_IG03
align [0 bytes for IG03]
- ;; size=12 bbWeight=1 PerfScore 2.25
+ ;; size=10 bbWeight=1 PerfScore 0.25
G_M57317_IG03: ; bbWeight=8, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
mov rcx, gword ptr [rcx+0x40]
cmp qword ptr [rcx], rax
@@ -39,7 +38,7 @@ G_M57317_IG06: ; bbWeight=0.35, epilog, nogc, extend
tail.jmp [rax+0x20]<unknown method>
;; size=4 bbWeight=0.35 PerfScore 0.70
-; Total bytes of code 37, prolog size 0, PerfScore 61.25, instruction count 10, allocated bytes for code 37 (MethodHash=aba5201a) for method Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PENestedNamespaceSymbol:get_ContainingPEModule():Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEModuleSymbol:this (Tier1)
+; Total bytes of code 35, prolog size 0, PerfScore 59.05, instruction count 9, allocated bytes for code 35 (MethodHash=aba5201a) for method Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PENestedNamespaceSymbol:get_ContainingPEModule():Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEModuleSymbol:this (Tier1)
; ============================================================
Unwind Info:
-12 (-4.15%) : 50441.dasm - NeuralJagged:zero_changes() (Tier1)@@ -61,9 +61,8 @@ G_M36258_IG04: ; bbWeight=8, gcrefRegs=0500 {r8 r10}, byrefRegs=0000 {},
;; size=7 bbWeight=8 PerfScore 12.00
G_M36258_IG05: ; bbWeight=7.78, gcrefRegs=0500 {r8 r10}, byrefRegs=0000 {}, byref, isz
mov r11d, eax
- jmp SHORT G_M36258_IG06
align [0 bytes for IG06]
- ;; size=5 bbWeight=7.78 PerfScore 17.50
+ ;; size=3 bbWeight=7.78 PerfScore 1.94
G_M36258_IG06: ; bbWeight=280, gcrefRegs=0500 {r8 r10}, byrefRegs=0000 {}, byref
mov rbx, r8
; gcrRegs +[rbx]
@@ -114,11 +113,10 @@ G_M36258_IG11: ; bbWeight=8, gcrefRegs=0500 {r8 r10}, byrefRegs=0000 {},
test ecx, ecx
jle SHORT G_M36258_IG15
;; size=7 bbWeight=8 PerfScore 12.00
-G_M36258_IG12: ; bbWeight=7.11, gcrefRegs=0500 {r8 r10}, byrefRegs=0000 {}, byref, isz, align
+G_M36258_IG12: ; bbWeight=7.11, gcrefRegs=0500 {r8 r10}, byrefRegs=0000 {}, byref, isz
mov r11d, eax
- jmp SHORT G_M36258_IG13
- align [8 bytes for IG13]
- ;; size=13 bbWeight=7.11 PerfScore 16.00
+ align [0 bytes for IG13]
+ ;; size=3 bbWeight=7.11 PerfScore 1.78
G_M36258_IG13: ; bbWeight=64, gcrefRegs=0500 {r8 r10}, byrefRegs=0000 {}, byref, isz
mov rbx, r8
; gcrRegs +[rbx]
@@ -163,7 +161,7 @@ G_M36258_IG17: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 289, prolog size 7, PerfScore 8561.18, instruction count 84, allocated bytes for code 289 (MethodHash=faf8725d) for method NeuralJagged:zero_changes() (Tier1)
+; Total bytes of code 277, prolog size 7, PerfScore 8530.20, instruction count 82, allocated bytes for code 277 (MethodHash=faf8725d) for method NeuralJagged:zero_changes() (Tier1)
; ============================================================
Unwind Info:
+0 (0.00%) : 96640.dasm - System.Text.Encodings.Web.TextEncoderSettings:AllowRange(System.Text.Unicode.UnicodeRange):this (Tier1-OSR)@@ -41,9 +41,8 @@ G_M7782_IG03: ; bbWeight=0.02, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, b
add rcx, 8
; gcrRegs -[rcx]
; byrRegs +[rcx]
- jmp SHORT G_M7782_IG04
- align [6 bytes for IG04]
- ;; size=12 bbWeight=0.02 PerfScore 0.04
+ align [8 bytes for IG04]
+ ;; size=12 bbWeight=0.02 PerfScore 0.01
G_M7782_IG04: ; bbWeight=99.98, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, loop=IG04, byref, isz
mov r8d, dword ptr [rsp+0x3C]
lea r10d, [r8+rax]
@@ -70,7 +69,7 @@ G_M7782_IG05: ; bbWeight=0.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
ret
;; size=6 bbWeight=0.01 PerfScore 0.02
-; Total bytes of code 97, prolog size 8, PerfScore 1284.61, instruction count 27, allocated bytes for code 97 (MethodHash=2824e199) for method System.Text.Encodings.Web.TextEncoderSettings:AllowRange(System.Text.Unicode.UnicodeRange):this (Tier1-OSR)
+; Total bytes of code 97, prolog size 8, PerfScore 1284.58, instruction count 26, allocated bytes for code 97 (MethodHash=2824e199) for method System.Text.Encodings.Web.TextEncoderSettings:AllowRange(System.Text.Unicode.UnicodeRange):this (Tier1-OSR)
; ============================================================
Unwind Info:
+2 (+0.09%) : 97956.dasm - NumericSortJagged:Run():double:this (Tier1)@@ -206,16 +206,16 @@ G_M42144_IG07: ; bbWeight=1, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {},
xor r9d, r9d
test ebp, ebp
jle SHORT G_M42144_IG10
- ;; size=143 bbWeight=1 PerfScore 36.50
-G_M42144_IG08: ; bbWeight=1.00, gcrefRegs=008A {rcx rbx rdi}, byrefRegs=0500 {r8 r10}, byref, isz
+ ;; NOP compensation instructions of 4 bytes.
+ ;; size=147 bbWeight=1 PerfScore 36.50
+G_M42144_IG08: ; bbWeight=1.00, gcrefRegs=008A {rcx rbx rdi}, byrefRegs=0500 {r8 r10}, byref, isz, align
mov r15d, dword ptr [rdi+0x08]
test r15d, r15d
je G_M42144_IG85
mov r11, gword ptr [rdi+0x10]
; gcrRegs +[r11]
- jmp SHORT G_M42144_IG09
- align [0 bytes for IG09]
- ;; size=19 bbWeight=1.00 PerfScore 7.24
+ align [1 bytes for IG09]
+ ;; size=18 bbWeight=1.00 PerfScore 5.49
G_M42144_IG09: ; bbWeight=999.00, gcrefRegs=088A {rcx rbx rdi r11}, byrefRegs=0500 {r8 r10}, loop=IG09, byref, isz
mov r15, r11
; gcrRegs +[r15]
@@ -276,9 +276,8 @@ G_M42144_IG13: ; bbWeight=987.92, gcrefRegs=0088 {rbx rdi}, byrefRegs=000
je G_M42144_IG85
mov r11, gword ptr [rdi+0x10]
; gcrRegs +[r11]
- jmp SHORT G_M42144_IG14
align [0 bytes for IG14]
- ;; size=23 bbWeight=987.92 PerfScore 7409.42
+ ;; size=21 bbWeight=987.92 PerfScore 5433.57
G_M42144_IG14: ; bbWeight=898546.45, gcrefRegs=088A {rcx rbx rdi r11}, byrefRegs=0000 {}, loop=IG14, byref, isz
mov rdx, rcx
; gcrRegs +[rdx]
@@ -344,7 +343,7 @@ G_M42144_IG19: ; bbWeight=16.67, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000
cmp ebp, r8d
jl SHORT G_M42144_IG19
;; size=48 bbWeight=16.67 PerfScore 212.50
-G_M42144_IG20: ; bbWeight=0.00, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
+G_M42144_IG20: ; bbWeight=0.00, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz, align
movsx r8, word ptr [rbx+0x20]
mov edx, dword ptr [rbx+0x1C]
mov rcx, rdi
@@ -356,8 +355,8 @@ G_M42144_IG20: ; bbWeight=0.00, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000
cmp rdx, qword ptr [(reloc)] ; static handle
jle G_M42144_IG86
jmp G_M42144_IG06
- align [0 bytes for IG23]
- ;; size=38 bbWeight=0.00 PerfScore 0.02
+ align [1 bytes for IG23]
+ ;; size=39 bbWeight=0.00 PerfScore 0.02
G_M42144_IG21: ; bbWeight=9.99, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
xor eax, eax
test ebp, ebp
@@ -926,7 +925,7 @@ RWD00 dq 3FF0000000000000h ; 1
RWD08 dq 408F400000000000h ; 1000
-; Total bytes of code 2169, prolog size 28, PerfScore 3851225895.31, instruction count 568, allocated bytes for code 2177 (MethodHash=29d05b5f) for method NumericSortJagged:Run():double:this (Tier1)
+; Total bytes of code 2171, prolog size 28, PerfScore 3851223917.52, instruction count 566, allocated bytes for code 2175 (MethodHash=29d05b5f) for method NumericSortJagged:Run():double:this (Tier1)
; ============================================================
Unwind Info:
+9 (+0.26%) : 49599.dasm - Benchstone.BenchI.MulMatrix:Inner(int[][],int[][],int[][]) (Tier1)@@ -107,7 +107,7 @@ G_M19657_IG02: ; bbWeight=1, gcrefRegs=0106 {rcx rdx r8}, byrefRegs=0000
; gcrRegs +[rcx rdx r8]
xor eax, eax
;; size=2 bbWeight=1 PerfScore 0.25
-G_M19657_IG03: ; bbWeight=999, gcrefRegs=0106 {rcx rdx r8}, byrefRegs=0000 {}, byref, isz
+G_M19657_IG03: ; bbWeight=999, gcrefRegs=0106 {rcx rdx r8}, byrefRegs=0000 {}, byref, isz, align
xor r10d, r10d
test rcx, rcx
je G_M19657_IG06
@@ -128,9 +128,8 @@ G_M19657_IG03: ; bbWeight=999, gcrefRegs=0106 {rcx rdx r8}, byrefRegs=000
;; NOP compensation instructions of 4 bytes.
mov esi, eax
lea edi, [rax+rax]
- jmp SHORT G_M19657_IG04
- align [0 bytes for IG04]
- ;; size=78 bbWeight=999 PerfScore 16483.50
+ align [2 bytes for IG04]
+ ;; size=78 bbWeight=999 PerfScore 14735.25
G_M19657_IG04: ; bbWeight=74801.59, gcrefRegs=0106 {rcx rdx r8}, byrefRegs=0000 {}, loop=IG04, byref, isz
mov ebp, r10d
mov r14, gword ptr [rcx+8*rbp+0x10]
@@ -246,9 +245,8 @@ G_M19657_IG12: ; bbWeight=104871.68, gcrefRegs=01A6 {rcx rdx rbp rdi r8},
cmp r11d, 75
jl SHORT G_M19657_IG15
mov esi, r10d
- jmp SHORT G_M19657_IG13
- align [4 bytes for IG13]
- ;; size=34 bbWeight=104871.68 PerfScore 1074934.72
+ align [6 bytes for IG13]
+ ;; size=34 bbWeight=104871.68 PerfScore 891409.28
G_M19657_IG13: ; bbWeight=7279183.34, gcrefRegs=01A6 {rcx rdx rbp rdi r8}, byrefRegs=0000 {}, loop=IG13, byref, isz
mov r15, rdi
; gcrRegs +[r15]
@@ -729,12 +727,10 @@ G_M19657_IG53: ; bbWeight=80.19, gcrefRegs=0106 {rcx rdx r8}, byrefRegs=0
;; NOP compensation instructions of 4 bytes.
cmp r11d, 75
jl SHORT G_M19657_IG56
- ;; NOP compensation instructions of 4 bytes.
mov r15, gword ptr [r8+8*rdi+0x10]
; gcrRegs +[r15]
- jmp SHORT G_M19657_IG54
align [0 bytes for IG54]
- ;; size=55 bbWeight=80.19 PerfScore 1142.71
+ ;; size=49 bbWeight=80.19 PerfScore 982.33
G_M19657_IG54: ; bbWeight=714.49, gcrefRegs=8126 {rcx rdx rbp r8 r15}, byrefRegs=0000 {}, loop=IG54, byref, isz
mov gword ptr [rsp+0x28], r15
; GC ptr vars +{V51}
@@ -879,11 +875,11 @@ G_M19657_IG64: ; bbWeight=9.00, gcrefRegs=0106 {rcx rdx r8}, byrefRegs=00
cmp r10d, 75
jl G_M19657_IG52
;; size=13 bbWeight=9.00 PerfScore 13.50
-G_M19657_IG65: ; bbWeight=1.00, gcrefRegs=0106 {rcx rdx r8}, byrefRegs=0000 {}, byref, isz, align
+G_M19657_IG65: ; bbWeight=1.00, gcrefRegs=0106 {rcx rdx r8}, byrefRegs=0000 {}, byref, isz
xor r10d, r10d
jmp G_M19657_IG75
- align [1 bytes for IG68]
- ;; size=9 bbWeight=1.00 PerfScore 2.25
+ align [0 bytes for IG68]
+ ;; size=8 bbWeight=1.00 PerfScore 2.25
G_M19657_IG66: ; bbWeight=81.00, gcrefRegs=0106 {rcx rdx r8}, byrefRegs=0000 {}, byref, isz
xor eax, eax
cmp ebx, 75
@@ -928,8 +924,9 @@ G_M19657_IG69: ; bbWeight=72.90, gcrefRegs=0106 {rcx rdx r8}, byrefRegs=0
; gcrRegs -[r12]
; byrRegs -[r15]
jmp SHORT G_M19657_IG72
+ ;; NOP compensation instructions of 3 bytes.
align [0 bytes for IG71]
- ;; size=2 bbWeight=72.90 PerfScore 145.80
+ ;; size=5 bbWeight=72.90 PerfScore 145.80
G_M19657_IG70: ; bbWeight=0.73, gcrefRegs=0106 {rcx rdx r8}, byrefRegs=0000 {}, byref
mov edi, r14d
;; size=3 bbWeight=0.73 PerfScore 0.18
@@ -1013,7 +1010,8 @@ G_M19657_IG81: ; bbWeight=71.45, gcrefRegs=0106 {rcx rdx r8}, byrefRegs=0
mov esi, eax
cmp gword ptr [r8+8*rsi+0x10], 0
je SHORT G_M19657_IG87
- ;; size=10 bbWeight=71.45 PerfScore 303.66
+ ;; NOP compensation instructions of 4 bytes.
+ ;; size=14 bbWeight=71.45 PerfScore 303.66
G_M19657_IG82: ; bbWeight=71.45, gcrefRegs=0106 {rcx rdx r8}, byrefRegs=0000 {}, byref, isz
mov esi, r14d
cmp gword ptr [rdx+8*rsi+0x10], 0
@@ -1336,8 +1334,9 @@ G_M19657_IG107: ; bbWeight=79.39, gcrefRegs=0106 {rcx rdx r8}, byrefRegs=
;; size=13 bbWeight=79.39 PerfScore 119.08
G_M19657_IG108: ; bbWeight=8.02, gcrefRegs=0106 {rcx rdx r8}, byrefRegs=0000 {}, byref, isz
jmp SHORT G_M19657_IG112
+ ;; NOP compensation instructions of 3 bytes.
align [0 bytes for IG110]
- ;; size=2 bbWeight=8.02 PerfScore 16.04
+ ;; size=5 bbWeight=8.02 PerfScore 16.04
G_M19657_IG109: ; bbWeight=0.80, gcrefRegs=0106 {rcx rdx r8}, byrefRegs=0000 {}, byref
xor eax, eax
;; size=2 bbWeight=0.80 PerfScore 0.20
@@ -1389,11 +1388,12 @@ G_M19657_IG112: ; bbWeight=8.91, gcrefRegs=0106 {rcx rdx r8}, byrefRegs=0
cmp r14d, 75
jl G_M19657_IG101
;; size=13 bbWeight=8.91 PerfScore 13.36
-G_M19657_IG113: ; bbWeight=0.90, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M19657_IG113: ; bbWeight=0.90, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz, align
; gcrRegs -[rcx rdx r8]
jmp SHORT G_M19657_IG119
- align [0 bytes for IG116]
- ;; size=2 bbWeight=0.90 PerfScore 1.80
+ ;; NOP compensation instructions of 3 bytes.
+ align [3 bytes for IG116]
+ ;; size=8 bbWeight=0.90 PerfScore 1.80
G_M19657_IG114: ; bbWeight=0.09, gcrefRegs=0106 {rcx rdx r8}, byrefRegs=0000 {}, byref
; gcrRegs +[rcx rdx r8]
xor r10d, r10d
@@ -1470,7 +1470,7 @@ G_M19657_IG120: ; bbWeight=0, gcVars=00000000000000000000000000000000 {},
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 3404, prolog size 16, PerfScore 151803140.08, instruction count 900, allocated bytes for code 3417 (MethodHash=482bb336) for method Benchstone.BenchI.MulMatrix:Inner(int[][],int[][],int[][]) (Tier1)
+; Total bytes of code 3413, prolog size 16, PerfScore 151617705.61, instruction count 897, allocated bytes for code 3413 (MethodHash=482bb336) for method Benchstone.BenchI.MulMatrix:Inner(int[][],int[][],int[][]) (Tier1)
; ============================================================
Unwind Info:
benchmarks.run_tiered.windows.x64.checked.mch-13 (-26.53%) : 43027.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsUseSiteDiagnosticPopulated():this (Tier1)@@ -20,12 +20,11 @@
G_M11989_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rax
;; size=1 bbWeight=1 PerfScore 1.00
-G_M11989_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref, isz, align
+G_M11989_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref, isz
; byrRegs +[rcx]
cmp byte ptr [rcx], cl
- jmp SHORT G_M11989_IG03
- align [11 bytes for IG03]
- ;; size=15 bbWeight=1 PerfScore 5.00
+ align [0 bytes for IG03]
+ ;; size=2 bbWeight=1 PerfScore 3.00
G_M11989_IG03: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref, isz
mov eax, dword ptr [rcx]
mov dword ptr [rsp+0x04], eax
@@ -46,7 +45,7 @@ G_M11989_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ret
;; size=5 bbWeight=1 PerfScore 1.25
-; Total bytes of code 49, prolog size 1, PerfScore 134.15, instruction count 16, allocated bytes for code 49 (MethodHash=acc9d12a) for method Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsUseSiteDiagnosticPopulated():this (Tier1)
+; Total bytes of code 36, prolog size 1, PerfScore 130.85, instruction count 15, allocated bytes for code 36 (MethodHash=acc9d12a) for method Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsUseSiteDiagnosticPopulated():this (Tier1)
; ============================================================
Unwind Info:
-13 (-26.53%) : 42942.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsUnmanagedCallersOnlyAttributePopulated():this (Tier1)@@ -20,12 +20,11 @@
G_M48426_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rax
;; size=1 bbWeight=1 PerfScore 1.00
-G_M48426_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref, isz, align
+G_M48426_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref, isz
; byrRegs +[rcx]
cmp byte ptr [rcx], cl
- jmp SHORT G_M48426_IG03
- align [11 bytes for IG03]
- ;; size=15 bbWeight=1 PerfScore 5.00
+ align [0 bytes for IG03]
+ ;; size=2 bbWeight=1 PerfScore 3.00
G_M48426_IG03: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref, isz
mov eax, dword ptr [rcx]
mov dword ptr [rsp+0x04], eax
@@ -46,7 +45,7 @@ G_M48426_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ret
;; size=5 bbWeight=1 PerfScore 1.25
-; Total bytes of code 49, prolog size 1, PerfScore 134.15, instruction count 16, allocated bytes for code 49 (MethodHash=9c5542d5) for method Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsUnmanagedCallersOnlyAttributePopulated():this (Tier1)
+; Total bytes of code 36, prolog size 1, PerfScore 130.85, instruction count 15, allocated bytes for code 36 (MethodHash=9c5542d5) for method Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsUnmanagedCallersOnlyAttributePopulated():this (Tier1)
; ============================================================
Unwind Info:
-9 (-19.57%) : 43130.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEFieldSymbol+PackedFlags:SetIsVolatile(ubyte):this (Tier1)@@ -26,11 +26,10 @@ G_M50458_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byr
test dl, dl
je SHORT G_M50458_IG05
;; size=4 bbWeight=1 PerfScore 1.25
-G_M50458_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref, isz, align
+G_M50458_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref, isz
cmp byte ptr [rcx], cl
- jmp SHORT G_M50458_IG04
- align [7 bytes for IG04]
- ;; size=11 bbWeight=0.50 PerfScore 2.50
+ align [0 bytes for IG04]
+ ;; size=2 bbWeight=0.50 PerfScore 1.50
G_M50458_IG04: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, loop=IG04, byref, isz
mov eax, dword ptr [rcx]
mov dword ptr [rsp+0x04], eax
@@ -49,7 +48,7 @@ G_M50458_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ret
;; size=5 bbWeight=1 PerfScore 1.25
-; Total bytes of code 46, prolog size 1, PerfScore 113.60, instruction count 18, allocated bytes for code 46 (MethodHash=447b3ae5) for method Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEFieldSymbol+PackedFlags:SetIsVolatile(ubyte):this (Tier1)
+; Total bytes of code 37, prolog size 1, PerfScore 111.70, instruction count 17, allocated bytes for code 37 (MethodHash=447b3ae5) for method Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEFieldSymbol+PackedFlags:SetIsVolatile(ubyte):this (Tier1)
; ============================================================
Unwind Info:
+2 (+0.26%) : 22322.dasm - System.SpanHelpers:NonPackedIndexOfAnyValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,short,short,int):int (Tier1)@@ -110,9 +110,8 @@ G_M11069_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0040 {rsi},
cmp ebx, 4
jl G_M11069_IG15
movsx rcx, r14w
- jmp SHORT G_M11069_IG06
align [0 bytes for IG06]
- ;; size=17 bbWeight=0.50 PerfScore 1.88
+ ;; size=15 bbWeight=0.50 PerfScore 0.88
G_M11069_IG06: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref
add ebx, -4
lea rdx, bword ptr [rsi+2*rax]
@@ -158,13 +157,15 @@ G_M11069_IG11: ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0044 {rdx rsi},
sete r8b
movzx r8, r8b
test r8b, r8b
- jne G_M11069_IG21
+ jne SHORT G_M11069_IG21
+ ;; NOP compensation instructions of 4 bytes.
;; size=29 bbWeight=2 PerfScore 8.00
G_M11069_IG12: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0044 {rdx rsi}, byref
movsx r8, word ptr [rdx+0x06]
cmp r8d, ecx
je SHORT G_M11069_IG20
- ;; size=10 bbWeight=4 PerfScore 21.00
+ ;; NOP compensation instructions of 4 bytes.
+ ;; size=14 bbWeight=4 PerfScore 21.00
G_M11069_IG13: ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref, isz
; byrRegs -[rdx]
cmp r8d, r10d
@@ -180,13 +181,12 @@ G_M11069_IG14: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, loo
cmp ebx, 4
jge G_M11069_IG06
;; size=13 bbWeight=4 PerfScore 6.00
-G_M11069_IG15: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref, isz
+G_M11069_IG15: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref, isz, align
test ebx, ebx
jle G_M11069_IG33
movsx rcx, r14w
- jmp SHORT G_M11069_IG16
- align [0 bytes for IG16]
- ;; size=14 bbWeight=0.50 PerfScore 1.75
+ align [2 bytes for IG16]
+ ;; size=14 bbWeight=0.50 PerfScore 0.88
G_M11069_IG16: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref, isz
dec ebx
movsx r8, word ptr [rsi+2*rax]
@@ -375,7 +375,7 @@ G_M11069_IG34: ; bbWeight=0.50, epilog, nogc, extend
RWD00 dq 0F0D0B0907050301h, 8080808080808080h, 0F0D0B0907050301h, 8080808080808080h
-; Total bytes of code 778, prolog size 29, PerfScore 411.35, instruction count 211, allocated bytes for code 786 (MethodHash=20f3d4c2) for method System.SpanHelpers:NonPackedIndexOfAnyValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,short,short,int):int (Tier1)
+; Total bytes of code 780, prolog size 29, PerfScore 408.88, instruction count 209, allocated bytes for code 780 (MethodHash=20f3d4c2) for method System.SpanHelpers:NonPackedIndexOfAnyValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,short,short,int):int (Tier1)
; ============================================================
Unwind Info:
+11 (+1.18%) : 54029.dasm - System.SpanHelpers:IndexOfAnyValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,short,short,short,int):int (Tier1)@@ -118,9 +118,8 @@ G_M10004_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0040 {rsi},
cmp ebx, 4
jl G_M10004_IG15
movsx rcx, r14w
- jmp SHORT G_M10004_IG06
align [0 bytes for IG06]
- ;; size=17 bbWeight=0.50 PerfScore 1.88
+ ;; size=15 bbWeight=0.50 PerfScore 0.88
G_M10004_IG06: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref
add ebx, -4
lea rdx, bword ptr [rsi+2*rax]
@@ -179,19 +178,22 @@ G_M10004_IG12: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0044 {rdx rsi},
movsx r8, word ptr [rdx+0x06]
cmp r8d, ecx
je SHORT G_M10004_IG20
- ;; size=10 bbWeight=4 PerfScore 21.00
+ ;; NOP compensation instructions of 4 bytes.
+ ;; size=14 bbWeight=4 PerfScore 21.00
G_M10004_IG13: ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref, isz
; byrRegs -[rdx]
cmp r8d, r10d
je SHORT G_M10004_IG20
+ ;; NOP compensation instructions of 4 bytes.
cmp r8d, r9d
je SHORT G_M10004_IG20
+ ;; NOP compensation instructions of 4 bytes.
cmp r8d, r11d
sete r8b
movzx r8, r8b
test r8b, r8b
jne SHORT G_M10004_IG20
- ;; size=26 bbWeight=2 PerfScore 10.50
+ ;; size=34 bbWeight=2 PerfScore 10.50
G_M10004_IG14: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, loop=IG06, byref
add rax, 4
cmp ebx, 4
@@ -201,9 +203,8 @@ G_M10004_IG15: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0040 {rsi},
test ebx, ebx
jle G_M10004_IG33
movsx rcx, r14w
- jmp SHORT G_M10004_IG16
align [0 bytes for IG16]
- ;; size=14 bbWeight=0.50 PerfScore 1.75
+ ;; size=12 bbWeight=0.50 PerfScore 0.75
G_M10004_IG16: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref, isz
dec ebx
movsx r8, word ptr [rsi+2*rax]
@@ -229,11 +230,11 @@ G_M10004_IG18: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, loo
test ebx, ebx
jg SHORT G_M10004_IG16
;; size=7 bbWeight=4 PerfScore 6.00
-G_M10004_IG19: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M10004_IG19: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz, align
; byrRegs -[rsi]
jmp G_M10004_IG33
- align [0 bytes for IG25]
- ;; size=5 bbWeight=0.50 PerfScore 1.00
+ align [3 bytes for IG25]
+ ;; size=8 bbWeight=0.50 PerfScore 1.00
G_M10004_IG20: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
add eax, 3
jmp G_M10004_IG32
@@ -414,7 +415,7 @@ G_M10004_IG34: ; bbWeight=0.50, epilog, nogc, extend
RWD00 dq 0F0D0B0907050301h, 8080808080808080h, 0F0D0B0907050301h, 8080808080808080h
-; Total bytes of code 931, prolog size 54, PerfScore 464.43, instruction count 246, allocated bytes for code 943 (MethodHash=fee1d8eb) for method System.SpanHelpers:IndexOfAnyValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,short,short,short,int):int (Tier1)
+; Total bytes of code 942, prolog size 54, PerfScore 462.33, instruction count 244, allocated bytes for code 942 (MethodHash=fee1d8eb) for method System.SpanHelpers:IndexOfAnyValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,short,short,short,int):int (Tier1)
; ============================================================
Unwind Info:
+8 (+2.03%) : 42645.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:LazyMethodChecks():this (Tier1)@@ -61,6 +61,7 @@ G_M360_IG03: ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, by
G_M360_IG04: ; bbWeight=0.50, gcVars=0000000000000840 {V00 V01}, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, gcvars, byref, isz
cmp byte ptr [rbp-0x10], 0
jne SHORT G_M360_IG08
+ ;; NOP compensation instructions of 4 bytes.
lea rdx, [rbp-0x10]
mov rcx, rax
; gcrRegs +[rcx]
@@ -77,15 +78,14 @@ G_M360_IG04: ; bbWeight=0.50, gcVars=0000000000000840 {V00 V01}, gcrefReg
call [<unknown method>]
; gcrRegs -[rcx rdx]
; gcr arg pop 0
- ;; size=45 bbWeight=0.50 PerfScore 5.25
+ ;; size=49 bbWeight=0.50 PerfScore 5.25
G_M360_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov rcx, gword ptr [rbp+0x10]
; gcrRegs +[rcx]
lea rdx, bword ptr [rcx+0x6C]
; byrRegs +[rdx]
- jmp SHORT G_M360_IG06
align [0 bytes for IG06]
- ;; size=10 bbWeight=0.50 PerfScore 1.75
+ ;; size=8 bbWeight=0.50 PerfScore 0.75
G_M360_IG06: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0004 {rdx}, loop=IG06, byref, isz
; gcrRegs -[rcx]
mov eax, dword ptr [rdx]
@@ -94,12 +94,13 @@ G_M360_IG06: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0004 {rdx}, loop=
or r8d, 0x2000
cmp r8d, eax
je SHORT G_M360_IG13
+ ;; NOP compensation instructions of 4 bytes.
lock
cmpxchg dword ptr [rdx], r8d
cmp eax, dword ptr [rbp-0x14]
jne SHORT G_M360_IG06
- ;; size=30 bbWeight=4 PerfScore 103.00
-G_M360_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ ;; size=34 bbWeight=4 PerfScore 103.00
+G_M360_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz, align
; byrRegs -[rdx]
mov rax, 0xD1FFAB1E ; const ptr
mov rcx, gword ptr [rax]
@@ -110,8 +111,8 @@ G_M360_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov gword ptr [rbp-0x28], rax
; GC ptr vars +{V03}
jmp SHORT G_M360_IG09
- align [0 bytes for IG11]
- ;; size=25 bbWeight=0.50 PerfScore 4.12
+ align [2 bytes for IG11]
+ ;; size=27 bbWeight=0.50 PerfScore 4.12
G_M360_IG08: ; bbWeight=0, gcVars=0000000000000800 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rax]
; GC ptr vars -{V00 V03}
@@ -265,7 +266,7 @@ G_M360_IG24: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 395, prolog size 25, PerfScore 288.05, instruction count 125, allocated bytes for code 403 (MethodHash=9b5bfe97) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:LazyMethodChecks():this (Tier1)
+; Total bytes of code 403, prolog size 25, PerfScore 287.05, instruction count 124, allocated bytes for code 403 (MethodHash=9b5bfe97) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:LazyMethodChecks():this (Tier1)
; ============================================================
Unwind Info:
coreclr_tests.run.windows.x64.checked.mch-14 (-26.42%) : 204281.dasm - CreateSpanTest:Main():int (FullOpts)@@ -23,13 +23,12 @@
G_M40157_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
sub rsp, 40
;; size=4 bbWeight=1 PerfScore 0.25
-G_M40157_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz, align
+G_M40157_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov rax, 0xD1FFAB1E ; static handle
xor ecx, ecx
xor edx, edx
- jmp SHORT G_M40157_IG03
- align [12 bytes for IG03]
- ;; size=28 bbWeight=1 PerfScore 2.75
+ align [0 bytes for IG03]
+ ;; size=14 bbWeight=1 PerfScore 0.75
G_M40157_IG03: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0001 {rax}, loop=IG03, byref, isz
; byrRegs +[rax]
mov r8d, edx
@@ -47,7 +46,7 @@ G_M40157_IG05: ; bbWeight=1, epilog, nogc, extend
ret
;; size=5 bbWeight=1 PerfScore 1.25
-; Total bytes of code 53, prolog size 4, PerfScore 28.80, instruction count 14, allocated bytes for code 53 (MethodHash=1c9d6322) for method CreateSpanTest:Main():int (FullOpts)
+; Total bytes of code 39, prolog size 4, PerfScore 25.40, instruction count 13, allocated bytes for code 39 (MethodHash=1c9d6322) for method CreateSpanTest:Main():int (FullOpts)
; ============================================================
Unwind Info:
-16 (-19.75%) : 240785.dasm - Program:Bar():int (FullOpts)@@ -22,9 +22,8 @@ G_M55117_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
xor eax, eax
xor ecx, ecx
vmovsd xmm0, qword ptr [reloc @RWD00]
- jmp SHORT G_M55117_IG03
- align [15 bytes for IG03]
- ;; size=29 bbWeight=1 PerfScore 5.50
+ align [1 bytes for IG03]
+ ;; size=13 bbWeight=1 PerfScore 3.75
G_M55117_IG03: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, loop=IG03, byref, isz
vxorps xmm1, xmm1, xmm1
vcvtsi2sd xmm1, xmm1, ecx
@@ -49,7 +48,7 @@ G_M55117_IG05: ; bbWeight=1, epilog, nogc, extend
RWD00 dq 401199999999999Ah ; 4.4
-; Total bytes of code 81, prolog size 3, PerfScore 113.18, instruction count 21, allocated bytes for code 81 (MethodHash=8b7028b2) for method Program:Bar():int (FullOpts)
+; Total bytes of code 65, prolog size 3, PerfScore 109.83, instruction count 20, allocated bytes for code 65 (MethodHash=8b7028b2) for method Program:Bar():int (FullOpts)
; ============================================================
Unwind Info:
-22 (-18.49%) : 297877.dasm - test:test_01(int):int (FullOpts)@@ -39,9 +39,8 @@ G_M8997_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
inc eax
inc eax
xor ecx, ecx
- jmp SHORT G_M8997_IG03
- align [6 bytes for IG03]
- ;; size=32 bbWeight=1 PerfScore 5.00
+ align [8 bytes for IG03]
+ ;; size=32 bbWeight=1 PerfScore 3.25
G_M8997_IG03: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, loop=IG03, byref, isz
inc eax
inc ecx
@@ -50,20 +49,18 @@ G_M8997_IG03: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, loop=IG
;; size=9 bbWeight=4 PerfScore 7.00
G_M8997_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
xor ecx, ecx
- jmp SHORT G_M8997_IG05
align [0 bytes for IG05]
- ;; size=4 bbWeight=1 PerfScore 2.25
+ ;; size=2 bbWeight=1 PerfScore 0.25
G_M8997_IG05: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, loop=IG05, byref, isz
inc eax
inc ecx
cmp ecx, 7
jl SHORT G_M8997_IG05
;; size=9 bbWeight=4 PerfScore 7.00
-G_M8997_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz, align
+G_M8997_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
xor ecx, ecx
- jmp SHORT G_M8997_IG07
- align [6 bytes for IG07]
- ;; size=10 bbWeight=1 PerfScore 2.25
+ align [0 bytes for IG07]
+ ;; size=2 bbWeight=1 PerfScore 0.25
G_M8997_IG07: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, loop=IG07, byref, isz
inc eax
inc ecx
@@ -72,20 +69,18 @@ G_M8997_IG07: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, loop=IG
;; size=9 bbWeight=4 PerfScore 7.00
G_M8997_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
xor ecx, ecx
- jmp SHORT G_M8997_IG09
align [0 bytes for IG09]
- ;; size=4 bbWeight=1 PerfScore 2.25
+ ;; size=2 bbWeight=1 PerfScore 0.25
G_M8997_IG09: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, loop=IG09, byref, isz
inc eax
inc ecx
cmp ecx, 9
jl SHORT G_M8997_IG09
;; size=9 bbWeight=4 PerfScore 7.00
-G_M8997_IG10: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz, align
+G_M8997_IG10: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
xor ecx, ecx
- jmp SHORT G_M8997_IG11
- align [6 bytes for IG11]
- ;; size=10 bbWeight=1 PerfScore 2.25
+ align [0 bytes for IG11]
+ ;; size=2 bbWeight=1 PerfScore 0.25
G_M8997_IG11: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, loop=IG11, byref, isz
inc eax
inc ecx
@@ -94,9 +89,8 @@ G_M8997_IG11: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, loop=IG
;; size=9 bbWeight=4 PerfScore 7.00
G_M8997_IG12: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
xor ecx, ecx
- jmp SHORT G_M8997_IG13
align [0 bytes for IG13]
- ;; size=4 bbWeight=1 PerfScore 2.25
+ ;; size=2 bbWeight=1 PerfScore 0.25
G_M8997_IG13: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, loop=IG13, byref, isz
inc eax
inc ecx
@@ -107,7 +101,7 @@ G_M8997_IG14: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ret
;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 119, prolog size 0, PerfScore 71.15, instruction count 54, allocated bytes for code 119 (MethodHash=41c2dcda) for method test:test_01(int):int (FullOpts)
+; Total bytes of code 97, prolog size 0, PerfScore 57.20, instruction count 48, allocated bytes for code 97 (MethodHash=41c2dcda) for method test:test_01(int):int (FullOpts)
; ============================================================
Unwind Info:
+8 (+1.52%) : 190035.dasm - Benchstone.BenchI.Array2:Bench(int):ubyte (FullOpts)@@ -89,8 +89,10 @@ G_M17716_IG04: ; bbWeight=15.84, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000
xor r8d, r8d
cmp edx, ecx
jbe SHORT G_M17716_IG09
+ ;; NOP compensation instructions of 4 bytes.
cmp eax, ecx
jbe SHORT G_M17716_IG09
+ ;; NOP compensation instructions of 4 bytes.
mov r10d, ecx
mov r9, gword ptr [rdi+8*r10+0x10]
; gcrRegs +[r9]
@@ -104,13 +106,12 @@ G_M17716_IG04: ; bbWeight=15.84, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000
jl SHORT G_M17716_IG09
cmp dword ptr [r11+0x08], 10
jl SHORT G_M17716_IG09
- ;; size=48 bbWeight=15.84 PerfScore 277.20
-G_M17716_IG05: ; bbWeight=62.73, gcrefRegs=0AC0 {rsi rdi r9 r11}, byrefRegs=0000 {}, byref, isz
+ ;; size=56 bbWeight=15.84 PerfScore 277.20
+G_M17716_IG05: ; bbWeight=62.73, gcrefRegs=0AC0 {rsi rdi r9 r11}, byrefRegs=0000 {}, byref, isz, align
xor ebp, ebp
mov r10d, r8d
- jmp SHORT G_M17716_IG06
- align [0 bytes for IG06]
- ;; size=7 bbWeight=62.73 PerfScore 156.82
+ align [2 bytes for IG06]
+ ;; size=7 bbWeight=62.73 PerfScore 47.04
G_M17716_IG06: ; bbWeight=250.91, gcrefRegs=0AC0 {rsi rdi r9 r11}, byrefRegs=0000 {}, loop=IG06, byref, isz
mov r14, r9
; gcrRegs +[r14]
@@ -279,7 +280,7 @@ G_M17716_IG23: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 525, prolog size 18, PerfScore 5173.12, instruction count 156, allocated bytes for code 533 (MethodHash=aef8bacb) for method Benchstone.BenchI.Array2:Bench(int):ubyte (FullOpts)
+; Total bytes of code 533, prolog size 18, PerfScore 5063.35, instruction count 155, allocated bytes for code 533 (MethodHash=aef8bacb) for method Benchstone.BenchI.Array2:Bench(int):ubyte (FullOpts)
; ============================================================
Unwind Info:
+8 (+2.03%) : 187864.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:LazyMethodChecks():this (FullOpts)@@ -61,6 +61,7 @@ G_M360_IG03: ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, by
G_M360_IG04: ; bbWeight=0.50, gcVars=0000000000000840 {V00 V01}, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, gcvars, byref, isz
cmp byte ptr [rbp-0x10], 0
jne SHORT G_M360_IG08
+ ;; NOP compensation instructions of 4 bytes.
lea rdx, [rbp-0x10]
mov rcx, rax
; gcrRegs +[rcx]
@@ -77,15 +78,14 @@ G_M360_IG04: ; bbWeight=0.50, gcVars=0000000000000840 {V00 V01}, gcrefReg
call [<unknown method>]
; gcrRegs -[rcx rdx]
; gcr arg pop 0
- ;; size=45 bbWeight=0.50 PerfScore 5.25
+ ;; size=49 bbWeight=0.50 PerfScore 5.25
G_M360_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov rcx, gword ptr [rbp+0x10]
; gcrRegs +[rcx]
lea rdx, bword ptr [rcx+0x6C]
; byrRegs +[rdx]
- jmp SHORT G_M360_IG06
align [0 bytes for IG06]
- ;; size=10 bbWeight=0.50 PerfScore 1.75
+ ;; size=8 bbWeight=0.50 PerfScore 0.75
G_M360_IG06: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0004 {rdx}, loop=IG06, byref, isz
; gcrRegs -[rcx]
mov eax, dword ptr [rdx]
@@ -94,12 +94,13 @@ G_M360_IG06: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0004 {rdx}, loop=
or r8d, 0x2000
cmp r8d, eax
je SHORT G_M360_IG13
+ ;; NOP compensation instructions of 4 bytes.
lock
cmpxchg dword ptr [rdx], r8d
cmp eax, dword ptr [rbp-0x14]
jne SHORT G_M360_IG06
- ;; size=30 bbWeight=4 PerfScore 103.00
-G_M360_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ ;; size=34 bbWeight=4 PerfScore 103.00
+G_M360_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz, align
; byrRegs -[rdx]
mov rax, 0xD1FFAB1E ; const ptr
mov rcx, gword ptr [rax]
@@ -110,8 +111,8 @@ G_M360_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov gword ptr [rbp-0x28], rax
; GC ptr vars +{V03}
jmp SHORT G_M360_IG09
- align [0 bytes for IG11]
- ;; size=25 bbWeight=0.50 PerfScore 4.12
+ align [2 bytes for IG11]
+ ;; size=27 bbWeight=0.50 PerfScore 4.12
G_M360_IG08: ; bbWeight=0, gcVars=0000000000000800 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rax]
; GC ptr vars -{V00 V03}
@@ -265,7 +266,7 @@ G_M360_IG24: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 395, prolog size 25, PerfScore 288.05, instruction count 125, allocated bytes for code 403 (MethodHash=9b5bfe97) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:LazyMethodChecks():this (FullOpts)
+; Total bytes of code 403, prolog size 25, PerfScore 287.05, instruction count 124, allocated bytes for code 403 (MethodHash=9b5bfe97) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:LazyMethodChecks():this (FullOpts)
; ============================================================
Unwind Info:
+8 (+2.47%) : 239659.dasm - System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int (FullOpts)@@ -86,14 +86,14 @@ G_M46731_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx},
; gcrRegs -[rcx rdx]
; gcr arg pop 0
;; size=26 bbWeight=0.50 PerfScore 1.75
-G_M46731_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz, align
+G_M46731_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
xor ecx, ecx
cmp esi, 8
- jl G_M46731_IG06
+ jl SHORT G_M46731_IG06
+ ;; NOP compensation instructions of 4 bytes.
movsx rax, di
- jmp SHORT G_M46731_IG05
- align [2 bytes for IG05]
- ;; size=19 bbWeight=1 PerfScore 3.75
+ align [0 bytes for IG05]
+ ;; size=15 bbWeight=1 PerfScore 1.75
G_M46731_IG05: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, loop=IG05, byref, isz
add esi, -8
movsx rdx, word ptr [rbx+2*rcx]
@@ -143,13 +143,12 @@ G_M46731_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx},
je SHORT G_M46731_IG15
add rcx, 4
;; size=55 bbWeight=0.50 PerfScore 11.50
-G_M46731_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
+G_M46731_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz, align
test esi, esi
jle SHORT G_M46731_IG09
movsx rax, di
- jmp SHORT G_M46731_IG08
- align [0 bytes for IG08]
- ;; size=10 bbWeight=0.50 PerfScore 1.75
+ align [14 bytes for IG08]
+ ;; size=22 bbWeight=0.50 PerfScore 0.88
G_M46731_IG08: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, loop=IG08, byref, isz
dec esi
movsx rdx, word ptr [rbx+2*rcx]
@@ -209,7 +208,7 @@ G_M46731_IG19: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
ret
;; size=8 bbWeight=0.50 PerfScore 1.38
-; Total bytes of code 324, prolog size 15, PerfScore 271.95, instruction count 101, allocated bytes for code 332 (MethodHash=bc854974) for method System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int (FullOpts)
+; Total bytes of code 332, prolog size 15, PerfScore 269.08, instruction count 99, allocated bytes for code 332 (MethodHash=bc854974) for method System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int (FullOpts)
; ============================================================
Unwind Info:
libraries.pmi.windows.x64.checked.mch-16 (-30.77%) : 26437.dasm - System.SpanHelpers:Count[ubyte](byref,ubyte,int):int (FullOpts)@@ -21,7 +21,7 @@
G_M63302_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
;; size=0 bbWeight=1 PerfScore 0.00
-G_M63302_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref, isz, align
+G_M63302_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref, isz
; byrRegs +[rcx]
xor eax, eax
movsxd r8, r8d
@@ -30,9 +30,8 @@ G_M63302_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byr
cmp rcx, r8
jae SHORT G_M63302_IG06
movzx rdx, dl
- jmp SHORT G_M63302_IG03
- align [14 bytes for IG03]
- ;; size=32 bbWeight=1 PerfScore 4.25
+ align [0 bytes for IG03]
+ ;; size=16 bbWeight=1 PerfScore 2.25
G_M63302_IG03: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0102 {rcx r8}, byref, isz
movzx r10, byte ptr [rcx]
cmp edx, r10d
@@ -51,7 +50,7 @@ G_M63302_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ret
;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 52, prolog size 0, PerfScore 29.95, instruction count 16, allocated bytes for code 52 (MethodHash=248d08b9) for method System.SpanHelpers:Count[ubyte](byref,ubyte,int):int (FullOpts)
+; Total bytes of code 36, prolog size 0, PerfScore 26.35, instruction count 15, allocated bytes for code 36 (MethodHash=248d08b9) for method System.SpanHelpers:Count[ubyte](byref,ubyte,int):int (FullOpts)
; ============================================================
Unwind Info:
-13 (-26.53%) : 126865.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsConditionalAttributePopulated():this (FullOpts)@@ -20,12 +20,11 @@
G_M23469_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rax
;; size=1 bbWeight=1 PerfScore 1.00
-G_M23469_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref, isz, align
+G_M23469_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref, isz
; byrRegs +[rcx]
cmp byte ptr [rcx], cl
- jmp SHORT G_M23469_IG03
- align [11 bytes for IG03]
- ;; size=15 bbWeight=1 PerfScore 5.00
+ align [0 bytes for IG03]
+ ;; size=2 bbWeight=1 PerfScore 3.00
G_M23469_IG03: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref, isz
mov eax, dword ptr [rcx]
mov dword ptr [rsp+0x04], eax
@@ -46,7 +45,7 @@ G_M23469_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ret
;; size=5 bbWeight=1 PerfScore 1.25
-; Total bytes of code 49, prolog size 1, PerfScore 134.15, instruction count 16, allocated bytes for code 49 (MethodHash=3970a452) for method Microsoft.CodeAnalysis.VisualBasic.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsConditionalAttributePopulated():this (FullOpts)
+; Total bytes of code 36, prolog size 1, PerfScore 130.85, instruction count 15, allocated bytes for code 36 (MethodHash=3970a452) for method Microsoft.CodeAnalysis.VisualBasic.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsConditionalAttributePopulated():this (FullOpts)
; ============================================================
Unwind Info:
-13 (-26.53%) : 98436.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsMemberNotNullPopulated():this (FullOpts)@@ -20,12 +20,11 @@
G_M58404_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rax
;; size=1 bbWeight=1 PerfScore 1.00
-G_M58404_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref, isz, align
+G_M58404_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref, isz
; byrRegs +[rcx]
cmp byte ptr [rcx], cl
- jmp SHORT G_M58404_IG03
- align [11 bytes for IG03]
- ;; size=15 bbWeight=1 PerfScore 5.00
+ align [0 bytes for IG03]
+ ;; size=2 bbWeight=1 PerfScore 3.00
G_M58404_IG03: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref, isz
mov eax, dword ptr [rcx]
mov dword ptr [rsp+0x04], eax
@@ -46,7 +45,7 @@ G_M58404_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ret
;; size=5 bbWeight=1 PerfScore 1.25
-; Total bytes of code 49, prolog size 1, PerfScore 134.15, instruction count 16, allocated bytes for code 49 (MethodHash=bb0d1bdb) for method Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsMemberNotNullPopulated():this (FullOpts)
+; Total bytes of code 36, prolog size 1, PerfScore 130.85, instruction count 15, allocated bytes for code 36 (MethodHash=bb0d1bdb) for method Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsMemberNotNullPopulated():this (FullOpts)
; ============================================================
Unwind Info:
+8 (+1.44%) : 91574.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceTypeParameterSymbolBase:EnsureAttributesFromConstraints(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)@@ -146,7 +146,7 @@ G_M45390_IG06: ; bbWeight=0.50, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0
mov rdx, r14
; gcrRegs +[rdx]
;; size=102 bbWeight=0.50 PerfScore 6.50
-G_M45390_IG07: ; bbWeight=0.50, gcrefRegs=006C {rdx rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
+G_M45390_IG07: ; bbWeight=0.50, gcrefRegs=006C {rdx rbx rbp rsi}, byrefRegs=0000 {}, byref, isz, align
; gcrRegs -[r14]
mov rcx, rbp
; gcrRegs +[rcx]
@@ -197,9 +197,8 @@ G_M45390_IG07: ; bbWeight=0.50, gcrefRegs=006C {rdx rbx rbp rsi}, byrefRe
add rbp, 364
; gcrRegs -[rbp]
; byrRegs +[rbp]
- jmp SHORT G_M45390_IG08
- align [0 bytes for IG08]
- ;; size=95 bbWeight=0.50 PerfScore 15.88
+ align [1 bytes for IG08]
+ ;; size=94 bbWeight=0.50 PerfScore 15.00
G_M45390_IG08: ; bbWeight=4, gcrefRegs=0048 {rbx rsi}, byrefRegs=0020 {rbp}, loop=IG08, byref, isz
mov eax, dword ptr [rbp]
mov dword ptr [rsp+0x24], eax
@@ -221,8 +220,9 @@ G_M45390_IG09: ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
; gcr arg pop 0
test eax, eax
je SHORT G_M45390_IG13
- ;; size=13 bbWeight=1 PerfScore 4.50
-G_M45390_IG10: ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+ ;; NOP compensation instructions of 4 bytes.
+ ;; size=17 bbWeight=1 PerfScore 4.50
+G_M45390_IG10: ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz, align
mov rcx, rbx
; gcrRegs +[rcx]
call [rdi+0x28]<unknown method>
@@ -264,9 +264,8 @@ G_M45390_IG10: ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
je SHORT G_M45390_IG12
lea rcx, bword ptr [rdi+0x16C]
; byrRegs +[rcx]
- jmp SHORT G_M45390_IG11
- align [0 bytes for IG11]
- ;; size=79 bbWeight=0.50 PerfScore 13.75
+ align [7 bytes for IG11]
+ ;; size=84 bbWeight=0.50 PerfScore 12.88
G_M45390_IG11: ; bbWeight=4, gcrefRegs=0080 {rdi}, byrefRegs=0002 {rcx}, loop=IG11, byref, isz
mov eax, dword ptr [rcx]
mov dword ptr [rsp+0x20], eax
@@ -311,7 +310,7 @@ G_M45390_IG15: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 554, prolog size 18, PerfScore 349.08, instruction count 149, allocated bytes for code 562 (MethodHash=13414eb1) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceTypeParameterSymbolBase:EnsureAttributesFromConstraints(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
+; Total bytes of code 562, prolog size 18, PerfScore 347.33, instruction count 147, allocated bytes for code 562 (MethodHash=13414eb1) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceTypeParameterSymbolBase:EnsureAttributesFromConstraints(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
; ============================================================
Unwind Info:
+3 (+1.78%) : 63781.dasm - Microsoft.CodeAnalysis.CSharp.MethodTypeInferrer:DependsTransitivelyOn(int,int):ubyte:this (FullOpts)@@ -34,17 +34,17 @@ G_M32314_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
push rbx
sub rsp, 32
;; size=10 bbWeight=1 PerfScore 5.25
-G_M32314_IG02: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
+G_M32314_IG02: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz, align
; gcrRegs +[rcx]
xor eax, eax
mov r10, gword ptr [rcx+0x60]
; gcrRegs +[r10]
cmp dword ptr [r10+0x08], 0
jle SHORT G_M32314_IG06
+ ;; NOP compensation instructions of 4 bytes.
mov rcx, gword ptr [rcx+0x50]
- jmp SHORT G_M32314_IG03
- align [0 bytes for IG03]
- ;; size=19 bbWeight=1 PerfScore 10.25
+ align [1 bytes for IG03]
+ ;; size=22 bbWeight=1 PerfScore 8.50
G_M32314_IG03: ; bbWeight=4, gcrefRegs=0402 {rcx r10}, byrefRegs=0000 {}, byref, isz
mov r9, rcx
; gcrRegs +[r9]
@@ -121,7 +121,7 @@ G_M32314_IG10: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 169, prolog size 10, PerfScore 147.30, instruction count 66, allocated bytes for code 173 (MethodHash=4a3a81c5) for method Microsoft.CodeAnalysis.CSharp.MethodTypeInferrer:DependsTransitivelyOn(int,int):ubyte:this (FullOpts)
+; Total bytes of code 172, prolog size 10, PerfScore 145.45, instruction count 65, allocated bytes for code 172 (MethodHash=4a3a81c5) for method Microsoft.CodeAnalysis.CSharp.MethodTypeInferrer:DependsTransitivelyOn(int,int):ubyte:this (FullOpts)
; ============================================================
Unwind Info:
+4 (+2.65%) : 287016.dasm - System.Linq.Lookup`2[ubyte,System.Nullable`1[int]]:Resize():this (FullOpts)@@ -30,11 +30,12 @@ G_M49387_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rbx, rcx
; gcrRegs +[rbx]
;; size=15 bbWeight=1 PerfScore 6.50
-G_M49387_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M49387_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz, align
imul esi, dword ptr [rbx+0x20], 2
jo G_M49387_IG07
add esi, 1
jo SHORT G_M49387_IG07
+ ;; NOP compensation instructions of 4 bytes.
movsxd rdx, esi
mov rcx, 0xD1FFAB1E ; <unknown class>
call CORINFO_HELP_NEWARR_1_OBJ
@@ -46,9 +47,8 @@ G_M49387_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
; gcrRegs +[rbp]
mov r14, rbp
; gcrRegs +[r14]
- jmp SHORT G_M49387_IG03
- align [0 bytes for IG03]
- ;; size=45 bbWeight=1 PerfScore 13.25
+ align [2 bytes for IG03]
+ ;; size=49 bbWeight=1 PerfScore 11.50
G_M49387_IG03: ; bbWeight=8, gcrefRegs=40A8 {rbx rbp rdi r14}, byrefRegs=0000 {}, loop=IG03, byref, isz
; gcrRegs -[rax]
mov r14, gword ptr [r14+0x18]
@@ -108,7 +108,7 @@ G_M49387_IG07: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 151, prolog size 15, PerfScore 361.50, instruction count 52, allocated bytes for code 155 (MethodHash=8a5d3f14) for method System.Linq.Lookup`2[ubyte,System.Nullable`1[int]]:Resize():this (FullOpts)
+; Total bytes of code 155, prolog size 15, PerfScore 359.75, instruction count 51, allocated bytes for code 155 (MethodHash=8a5d3f14) for method System.Linq.Lookup`2[ubyte,System.Nullable`1[int]]:Resize():this (FullOpts)
; ============================================================
Unwind Info:
libraries_tests.run.windows.x64.Release.mch-13 (-26.53%) : 58022.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+Flags:SetFlattenedMembersIsSorted():this (Tier1)@@ -20,12 +20,11 @@
G_M26681_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rax
;; size=1 bbWeight=1 PerfScore 1.00
-G_M26681_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref, isz, align
+G_M26681_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref, isz
; byrRegs +[rcx]
cmp byte ptr [rcx], cl
- jmp SHORT G_M26681_IG03
- align [11 bytes for IG03]
- ;; size=15 bbWeight=1 PerfScore 5.00
+ align [0 bytes for IG03]
+ ;; size=2 bbWeight=1 PerfScore 3.00
G_M26681_IG03: ; bbWeight=8.00, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref, isz
mov eax, dword ptr [rcx]
mov dword ptr [rsp+0x04], eax
@@ -46,7 +45,7 @@ G_M26681_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ret
;; size=5 bbWeight=1 PerfScore 1.25
-; Total bytes of code 49, prolog size 1, PerfScore 132.70, instruction count 16, allocated bytes for code 49 (MethodHash=ba8c97c6) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+Flags:SetFlattenedMembersIsSorted():this (Tier1)
+; Total bytes of code 36, prolog size 1, PerfScore 129.40, instruction count 15, allocated bytes for code 36 (MethodHash=ba8c97c6) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+Flags:SetFlattenedMembersIsSorted():this (Tier1)
; ============================================================
Unwind Info:
-13 (-26.53%) : 54231.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsUnmanagedCallersOnlyAttributePopulated():this (Tier1)@@ -20,12 +20,11 @@
G_M48426_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rax
;; size=1 bbWeight=1 PerfScore 1.00
-G_M48426_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref, isz, align
+G_M48426_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref, isz
; byrRegs +[rcx]
cmp byte ptr [rcx], cl
- jmp SHORT G_M48426_IG03
- align [11 bytes for IG03]
- ;; size=15 bbWeight=1 PerfScore 5.00
+ align [0 bytes for IG03]
+ ;; size=2 bbWeight=1 PerfScore 3.00
G_M48426_IG03: ; bbWeight=8.00, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref, isz
mov eax, dword ptr [rcx]
mov dword ptr [rsp+0x04], eax
@@ -46,7 +45,7 @@ G_M48426_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ret
;; size=5 bbWeight=1 PerfScore 1.25
-; Total bytes of code 49, prolog size 1, PerfScore 132.70, instruction count 16, allocated bytes for code 49 (MethodHash=9c5542d5) for method Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsUnmanagedCallersOnlyAttributePopulated():this (Tier1)
+; Total bytes of code 36, prolog size 1, PerfScore 129.40, instruction count 15, allocated bytes for code 36 (MethodHash=9c5542d5) for method Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsUnmanagedCallersOnlyAttributePopulated():this (Tier1)
; ============================================================
Unwind Info:
-13 (-26.53%) : 54233.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsUseSiteDiagnosticPopulated():this (Tier1)@@ -20,12 +20,11 @@
G_M11989_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rax
;; size=1 bbWeight=1 PerfScore 1.00
-G_M11989_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref, isz, align
+G_M11989_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref, isz
; byrRegs +[rcx]
cmp byte ptr [rcx], cl
- jmp SHORT G_M11989_IG03
- align [11 bytes for IG03]
- ;; size=15 bbWeight=1 PerfScore 5.00
+ align [0 bytes for IG03]
+ ;; size=2 bbWeight=1 PerfScore 3.00
G_M11989_IG03: ; bbWeight=8.00, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref, isz
mov eax, dword ptr [rcx]
mov dword ptr [rsp+0x04], eax
@@ -46,7 +45,7 @@ G_M11989_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ret
;; size=5 bbWeight=1 PerfScore 1.25
-; Total bytes of code 49, prolog size 1, PerfScore 132.70, instruction count 16, allocated bytes for code 49 (MethodHash=acc9d12a) for method Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsUseSiteDiagnosticPopulated():this (Tier1)
+; Total bytes of code 36, prolog size 1, PerfScore 129.40, instruction count 15, allocated bytes for code 36 (MethodHash=acc9d12a) for method Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsUseSiteDiagnosticPopulated():this (Tier1)
; ============================================================
Unwind Info:
+4 (+2.29%) : 65925.dasm - Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.ValueTuple`2[System.__Canon,uint]]:Free():this (Tier1)@@ -34,11 +34,12 @@ G_M46296_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rbx, rcx
; gcrRegs +[rbx]
;; size=10 bbWeight=1 PerfScore 3.50
-G_M46296_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M46296_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz, align
mov rsi, gword ptr [rbx+0x10]
; gcrRegs +[rsi]
test rsi, rsi
je SHORT G_M46296_IG08
+ ;; NOP compensation instructions of 4 bytes.
mov rdi, gword ptr [rbx+0x08]
; gcrRegs +[rdi]
mov rcx, gword ptr [rdi+0x08]
@@ -53,9 +54,8 @@ G_M46296_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
cmp r8d, 64
jg SHORT G_M46296_IG11
xor edx, edx
- jmp SHORT G_M46296_IG03
- align [0 bytes for IG03]
- ;; size=50 bbWeight=1 PerfScore 19.25
+ align [2 bytes for IG03]
+ ;; size=54 bbWeight=1 PerfScore 17.50
G_M46296_IG03: ; bbWeight=3, gcrefRegs=00CA {rcx rbx rsi rdi}, byrefRegs=0000 {}, loop=IG03, byref, isz
mov rax, rcx
; gcrRegs +[rax]
@@ -134,7 +134,7 @@ G_M46296_IG12: ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000
jmp SHORT G_M46296_IG04
;; size=18 bbWeight=0 PerfScore 0.00
-; Total bytes of code 175, prolog size 10, PerfScore 78.87, instruction count 60, allocated bytes for code 179 (MethodHash=4f314b27) for method Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.ValueTuple`2[System.__Canon,uint]]:Free():this (Tier1)
+; Total bytes of code 179, prolog size 10, PerfScore 77.12, instruction count 59, allocated bytes for code 179 (MethodHash=4f314b27) for method Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.ValueTuple`2[System.__Canon,uint]]:Free():this (Tier1)
; ============================================================
Unwind Info:
+4 (+2.29%) : 60128.dasm - Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]]:Free():this (Tier1)@@ -34,11 +34,12 @@ G_M3517_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rbx, rcx
; gcrRegs +[rbx]
;; size=10 bbWeight=1 PerfScore 3.50
-G_M3517_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M3517_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz, align
mov rsi, gword ptr [rbx+0x10]
; gcrRegs +[rsi]
test rsi, rsi
je SHORT G_M3517_IG08
+ ;; NOP compensation instructions of 4 bytes.
mov rdi, gword ptr [rbx+0x08]
; gcrRegs +[rdi]
mov rcx, gword ptr [rdi+0x08]
@@ -53,9 +54,8 @@ G_M3517_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byre
cmp r8d, 64
jg SHORT G_M3517_IG11
xor edx, edx
- jmp SHORT G_M3517_IG03
- align [0 bytes for IG03]
- ;; size=50 bbWeight=1 PerfScore 19.25
+ align [2 bytes for IG03]
+ ;; size=54 bbWeight=1 PerfScore 17.50
G_M3517_IG03: ; bbWeight=4.63, gcrefRegs=00CA {rcx rbx rsi rdi}, byrefRegs=0000 {}, loop=IG03, byref, isz
mov rax, rcx
; gcrRegs +[rax]
@@ -134,7 +134,7 @@ G_M3517_IG12: ; bbWeight=0, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000
jmp SHORT G_M3517_IG04
;; size=18 bbWeight=0 PerfScore 0.00
-; Total bytes of code 175, prolog size 10, PerfScore 93.17, instruction count 60, allocated bytes for code 179 (MethodHash=0e2df242) for method Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]]:Free():this (Tier1)
+; Total bytes of code 179, prolog size 10, PerfScore 91.42, instruction count 59, allocated bytes for code 179 (MethodHash=0e2df242) for method Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]]:Free():this (Tier1)
; ============================================================
Unwind Info:
+4 (+2.65%) : 670958.dasm - System.Linq.Lookup`2[int,int]:Resize():this (Tier1)@@ -31,11 +31,12 @@ G_M63754_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rbx, rcx
; gcrRegs +[rbx]
;; size=15 bbWeight=1 PerfScore 6.50
-G_M63754_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M63754_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz, align
imul esi, dword ptr [rbx+0x20], 2
jo G_M63754_IG07
add esi, 1
jo SHORT G_M63754_IG07
+ ;; NOP compensation instructions of 4 bytes.
movsxd rdx, esi
mov rcx, 0xD1FFAB1E ; <unknown class>
call CORINFO_HELP_NEWARR_1_OBJ
@@ -47,9 +48,8 @@ G_M63754_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
; gcrRegs +[rbp]
mov r14, rbp
; gcrRegs +[r14]
- jmp SHORT G_M63754_IG03
- align [0 bytes for IG03]
- ;; size=45 bbWeight=1 PerfScore 13.25
+ align [2 bytes for IG03]
+ ;; size=49 bbWeight=1 PerfScore 11.50
G_M63754_IG03: ; bbWeight=28.94, gcrefRegs=40A8 {rbx rbp rdi r14}, byrefRegs=0000 {}, loop=IG03, byref, isz
; gcrRegs -[rax]
mov r14, gword ptr [r14+0x18]
@@ -109,7 +109,7 @@ G_M63754_IG07: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 151, prolog size 15, PerfScore 1199.06, instruction count 52, allocated bytes for code 155 (MethodHash=c33806f5) for method System.Linq.Lookup`2[int,int]:Resize():this (Tier1)
+; Total bytes of code 155, prolog size 15, PerfScore 1197.31, instruction count 51, allocated bytes for code 155 (MethodHash=c33806f5) for method System.Linq.Lookup`2[int,int]:Resize():this (Tier1)
; ============================================================
Unwind Info:
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-16 (-24.24%) : 207038.dasm - System.Runtime.Serialization.ObjectToIdCache:GetPrime(int):int (FullOpts)@@ -26,12 +26,11 @@
G_M55800_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
sub rsp, 40
;; size=4 bbWeight=1 PerfScore 0.25
-G_M55800_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz, align
+G_M55800_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov rax, 0xD1FFAB1E ; static handle
xor edx, edx
- jmp SHORT G_M55800_IG03
- align [14 bytes for IG03]
- ;; size=28 bbWeight=1 PerfScore 2.50
+ align [0 bytes for IG03]
+ ;; size=12 bbWeight=1 PerfScore 0.50
G_M55800_IG03: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0001 {rax}, loop=IG03, byref, isz
; byrRegs +[rax]
mov r8d, edx
@@ -58,7 +57,7 @@ G_M55800_IG07: ; bbWeight=0.50, epilog, nogc, extend
ret
;; size=5 bbWeight=0.50 PerfScore 0.62
-; Total bytes of code 66, prolog size 4, PerfScore 30.85, instruction count 18, allocated bytes for code 66 (MethodHash=06672607) for method System.Runtime.Serialization.ObjectToIdCache:GetPrime(int):int (FullOpts)
+; Total bytes of code 50, prolog size 4, PerfScore 27.25, instruction count 17, allocated bytes for code 50 (MethodHash=06672607) for method System.Runtime.Serialization.ObjectToIdCache:GetPrime(int):int (FullOpts)
; ============================================================
Unwind Info:
-10 (-21.74%) : 123275.dasm - System.Formats.Tar.TarHeader:g__CountDigits|115_0(int):int (FullOpts)@@ -16,11 +16,10 @@
G_M44852_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
;; size=0 bbWeight=1 PerfScore 0.00
-G_M44852_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz, align
+G_M44852_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov r8d, 1
- jmp SHORT G_M44852_IG03
- align [8 bytes for IG03]
- ;; size=16 bbWeight=1 PerfScore 2.25
+ align [0 bytes for IG03]
+ ;; size=6 bbWeight=1 PerfScore 0.25
G_M44852_IG03: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov edx, 0xD1FFAB1E
mov eax, edx
@@ -42,7 +41,7 @@ G_M44852_IG06: ; bbWeight=1, epilog, nogc, extend
ret
;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 46, prolog size 0, PerfScore 65.10, instruction count 15, allocated bytes for code 46 (MethodHash=029a50cb) for method System.Formats.Tar.TarHeader:<GenerateExtendedAttributesDataStream>g__CountDigits|115_0(int):int (FullOpts)
+; Total bytes of code 36, prolog size 0, PerfScore 62.10, instruction count 14, allocated bytes for code 36 (MethodHash=029a50cb) for method System.Formats.Tar.TarHeader:<GenerateExtendedAttributesDataStream>g__CountDigits|115_0(int):int (FullOpts)
; ============================================================
Unwind Info:
-17 (-19.54%) : 18729.dasm - NativeExports.Arrays:CreateRangeImpl(int,int,ulong):ulong (FullOpts)@@ -37,7 +37,7 @@ G_M59658_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
pop rsi
ret
;; size=7 bbWeight=0.50 PerfScore 1.12
-G_M59658_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz, align
+G_M59658_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
mov ecx, esi
sub ecx, ebx
mov dword ptr [r8], ecx
@@ -46,9 +46,8 @@ G_M59658_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
call [System.Runtime.InteropServices.Marshal:AllocCoTaskMem(int):long]
; gcr arg pop 0
mov ecx, ebx
- jmp SHORT G_M59658_IG06
- align [15 bytes for IG06]
- ;; size=38 bbWeight=0.50 PerfScore 4.62
+ align [0 bytes for IG06]
+ ;; size=21 bbWeight=0.50 PerfScore 3.62
G_M59658_IG06: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, loop=IG06, byref, isz
mov edx, ecx
sub edx, ebx
@@ -65,7 +64,7 @@ G_M59658_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
ret
;; size=7 bbWeight=0.50 PerfScore 1.12
-; Total bytes of code 87, prolog size 10, PerfScore 33.20, instruction count 33, allocated bytes for code 87 (MethodHash=596616f5) for method NativeExports.Arrays:CreateRangeImpl(int,int,ulong):ulong (FullOpts)
+; Total bytes of code 70, prolog size 10, PerfScore 30.50, instruction count 32, allocated bytes for code 70 (MethodHash=596616f5) for method NativeExports.Arrays:CreateRangeImpl(int,int,ulong):ulong (FullOpts)
; ============================================================
Unwind Info:
+3 (+0.15%) : 213.dasm - System.Text.RegularExpressions.RegexCharClass:Canonicalize():this (FullOpts)@@ -427,9 +427,8 @@ G_M44023_IG06: ; bbWeight=4, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
; gcrRegs -[r9]
; byrRegs +[r9]
movzx rdi, word ptr [r9+0x02]
- jmp SHORT G_M44023_IG07
align [0 bytes for IG07]
- ;; size=45 bbWeight=4 PerfScore 56.00
+ ;; size=43 bbWeight=4 PerfScore 48.00
G_M44023_IG07: ; bbWeight=32, gcrefRegs=0448 {rbx rsi r10}, byrefRegs=0200 {r9}, byref, isz
cmp ecx, eax
je SHORT G_M44023_IG11
@@ -534,7 +533,7 @@ G_M44023_IG16: ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
add r8d, dword ptr [rcx+0x18]
jne G_M44023_IG21
;; size=44 bbWeight=0.50 PerfScore 8.62
-G_M44023_IG17: ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M44023_IG17: ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz, align
; gcrRegs -[rcx]
mov edi, dword ptr [rsi+0x10]
cmp edi, 2
@@ -580,6 +579,7 @@ G_M44023_IG17: ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
mov dword ptr [rsi+0x10], edi
cmp edi, 1
jle SHORT G_M44023_IG20
+ ;; NOP compensation instructions of 4 bytes.
dec edi
mov dword ptr [rsp+0x20], edi
mov rcx, r8
@@ -591,8 +591,8 @@ G_M44023_IG17: ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
; gcrRegs -[rcx r8]
; gcr arg pop 0
jmp SHORT G_M44023_IG20
- align [0 bytes for IG24]
- ;; size=171 bbWeight=0.50 PerfScore 22.38
+ align [1 bytes for IG24]
+ ;; size=176 bbWeight=0.50 PerfScore 22.38
G_M44023_IG18: ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
cmp edi, 1
jne SHORT G_M44023_IG21
@@ -1147,7 +1147,7 @@ G_M44023_IG61: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 2024, prolog size 67, PerfScore 1307.83, instruction count 512, allocated bytes for code 2028 (MethodHash=0d6d5408) for method System.Text.RegularExpressions.RegexCharClass:Canonicalize():this (FullOpts)
+; Total bytes of code 2027, prolog size 67, PerfScore 1299.73, instruction count 511, allocated bytes for code 2027 (MethodHash=0d6d5408) for method System.Text.RegularExpressions.RegexCharClass:Canonicalize():this (FullOpts)
; ============================================================
Unwind Info:
+7 (+1.77%) : 7251.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:LazyMethodChecks():this (FullOpts)@@ -61,6 +61,7 @@ G_M360_IG03: ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, by
G_M360_IG04: ; bbWeight=0.50, gcVars=0000000000000840 {V00 V01}, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, gcvars, byref, isz
cmp byte ptr [rbp-0x10], 0
jne SHORT G_M360_IG08
+ ;; NOP compensation instructions of 4 bytes.
lea rdx, [rbp-0x10]
mov rcx, rax
; gcrRegs +[rcx]
@@ -77,15 +78,14 @@ G_M360_IG04: ; bbWeight=0.50, gcVars=0000000000000840 {V00 V01}, gcrefReg
call [<unknown method>]
; gcrRegs -[rcx rdx]
; gcr arg pop 0
- ;; size=45 bbWeight=0.50 PerfScore 5.25
+ ;; size=49 bbWeight=0.50 PerfScore 5.25
G_M360_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov rcx, gword ptr [rbp+0x10]
; gcrRegs +[rcx]
lea rdx, bword ptr [rcx+0x6C]
; byrRegs +[rdx]
- jmp SHORT G_M360_IG06
align [0 bytes for IG06]
- ;; size=10 bbWeight=0.50 PerfScore 1.75
+ ;; size=8 bbWeight=0.50 PerfScore 0.75
G_M360_IG06: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0004 {rdx}, loop=IG06, byref, isz
; gcrRegs -[rcx]
mov eax, dword ptr [rdx]
@@ -94,12 +94,13 @@ G_M360_IG06: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0004 {rdx}, loop=
or r8d, 0x2000
cmp r8d, eax
je SHORT G_M360_IG13
+ ;; NOP compensation instructions of 4 bytes.
lock
cmpxchg dword ptr [rdx], r8d
cmp eax, dword ptr [rbp-0x14]
jne SHORT G_M360_IG06
- ;; size=30 bbWeight=4 PerfScore 103.00
-G_M360_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ ;; size=34 bbWeight=4 PerfScore 103.00
+G_M360_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz, align
; byrRegs -[rdx]
mov rax, 0xD1FFAB1E ; const ptr
mov rcx, gword ptr [rax]
@@ -110,8 +111,8 @@ G_M360_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov gword ptr [rbp-0x28], rax
; GC ptr vars +{V03}
jmp SHORT G_M360_IG09
- align [0 bytes for IG11]
- ;; size=25 bbWeight=0.50 PerfScore 4.12
+ align [1 bytes for IG11]
+ ;; size=26 bbWeight=0.50 PerfScore 4.12
G_M360_IG08: ; bbWeight=0, gcVars=0000000000000800 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rax]
; GC ptr vars -{V00 V03}
@@ -265,7 +266,7 @@ G_M360_IG24: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 396, prolog size 25, PerfScore 288.15, instruction count 125, allocated bytes for code 404 (MethodHash=9b5bfe97) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:LazyMethodChecks():this (FullOpts)
+; Total bytes of code 403, prolog size 25, PerfScore 287.05, instruction count 124, allocated bytes for code 403 (MethodHash=9b5bfe97) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:LazyMethodChecks():this (FullOpts)
; ============================================================
Unwind Info:
+4 (+2.65%) : 311313.dasm - System.Linq.Lookup`2[int,int]:Resize():this (FullOpts)@@ -30,11 +30,12 @@ G_M63754_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rbx, rcx
; gcrRegs +[rbx]
;; size=15 bbWeight=1 PerfScore 6.50
-G_M63754_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M63754_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz, align
imul esi, dword ptr [rbx+0x20], 2
jo G_M63754_IG07
add esi, 1
jo SHORT G_M63754_IG07
+ ;; NOP compensation instructions of 4 bytes.
movsxd rdx, esi
mov rcx, 0xD1FFAB1E ; <unknown class>
call CORINFO_HELP_NEWARR_1_OBJ
@@ -46,9 +47,8 @@ G_M63754_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
; gcrRegs +[rbp]
mov r14, rbp
; gcrRegs +[r14]
- jmp SHORT G_M63754_IG03
- align [0 bytes for IG03]
- ;; size=45 bbWeight=1 PerfScore 13.25
+ align [2 bytes for IG03]
+ ;; size=49 bbWeight=1 PerfScore 11.50
G_M63754_IG03: ; bbWeight=8, gcrefRegs=40A8 {rbx rbp rdi r14}, byrefRegs=0000 {}, loop=IG03, byref, isz
; gcrRegs -[rax]
mov r14, gword ptr [r14+0x18]
@@ -108,7 +108,7 @@ G_M63754_IG07: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 151, prolog size 15, PerfScore 361.50, instruction count 52, allocated bytes for code 155 (MethodHash=c33806f5) for method System.Linq.Lookup`2[int,int]:Resize():this (FullOpts)
+; Total bytes of code 155, prolog size 15, PerfScore 359.75, instruction count 51, allocated bytes for code 155 (MethodHash=c33806f5) for method System.Linq.Lookup`2[int,int]:Resize():this (FullOpts)
; ============================================================
Unwind Info:
realworld.run.windows.x64.checked.mch-13 (-22.41%) : 7880.dasm - FSharp.Compiler.CheckExpressions+TcMethodApplication@9380:Invoke(FSharp.Compiler.Infos+MethInfo):ubyte:this (FullOpts)@@ -23,7 +23,7 @@
G_M9240_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
sub rsp, 40
;; size=4 bbWeight=1 PerfScore 0.25
-G_M9240_IG02: ; bbWeight=1, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byref, isz, align
+G_M9240_IG02: ; bbWeight=1, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rdx]
mov rcx, rdx
; gcrRegs +[rcx]
@@ -33,9 +33,8 @@ G_M9240_IG02: ; bbWeight=1, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byre
; gcr arg pop 0
cmp byte ptr [rax], al
xor ecx, ecx
- jmp SHORT G_M9240_IG03
- align [11 bytes for IG03]
- ;; size=28 bbWeight=1 PerfScore 11.50
+ align [0 bytes for IG03]
+ ;; size=15 bbWeight=1 PerfScore 9.50
G_M9240_IG03: ; bbWeight=8, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, isz
mov rax, gword ptr [rax+0x08]
test rax, rax
@@ -56,7 +55,7 @@ G_M9240_IG06: ; bbWeight=1, epilog, nogc, extend
ret
;; size=5 bbWeight=1 PerfScore 1.25
-; Total bytes of code 58, prolog size 4, PerfScore 55.30, instruction count 18, allocated bytes for code 58 (MethodHash=dc83dbe7) for method FSharp.Compiler.CheckExpressions+TcMethodApplication@9380:Invoke(FSharp.Compiler.Infos+MethInfo):ubyte:this (FullOpts)
+; Total bytes of code 45, prolog size 4, PerfScore 52.00, instruction count 17, allocated bytes for code 45 (MethodHash=dc83dbe7) for method FSharp.Compiler.CheckExpressions+TcMethodApplication@9380:Invoke(FSharp.Compiler.Infos+MethInfo):ubyte:this (FullOpts)
; ============================================================
Unwind Info:
-21 (-18.10%) : 17284.dasm - System.Linq.Enumerable+RangeIterator:Fill(System.Span`1[int],int) (FullOpts)@@ -53,15 +53,14 @@ G_M33525_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byr
cmp ecx, 8
jl SHORT G_M33525_IG06
;; size=18 bbWeight=1 PerfScore 6.00
-G_M33525_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0101 {rax r8}, byref, isz, align
+G_M33525_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0101 {rax r8}, byref, isz
vpbroadcastd ymm0, edx
vpaddd ymm0, ymm0, ymmword ptr [reloc @RWD00]
vmovups ymm1, ymmword ptr [reloc @RWD32]
lea rdx, bword ptr [r8-0x20]
; byrRegs +[rdx]
- jmp SHORT G_M33525_IG04
- align [15 bytes for IG04]
- ;; size=43 bbWeight=0.50 PerfScore 5.25
+ align [0 bytes for IG04]
+ ;; size=26 bbWeight=0.50 PerfScore 4.25
G_M33525_IG04: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0105 {rax rdx r8}, loop=IG04, byref, isz
vmovups ymmword ptr [rax], ymm0
vpaddd ymm0, ymm0, ymm1
@@ -73,12 +72,12 @@ G_M33525_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0101 {rax r8
; byrRegs -[rdx]
vmovd edx, xmm0
;; size=4 bbWeight=0.50 PerfScore 1.00
-G_M33525_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0101 {rax r8}, byref, isz, align
+G_M33525_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0101 {rax r8}, byref, isz
cmp rax, r8
jae SHORT G_M33525_IG08
jmp SHORT G_M33525_IG07
- align [4 bytes for IG07]
- ;; size=11 bbWeight=1 PerfScore 3.50
+ align [0 bytes for IG07]
+ ;; size=7 bbWeight=1 PerfScore 3.25
G_M33525_IG07: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0101 {rax r8}, loop=IG07, byref, isz
lea ecx, [rdx+0x01]
mov dword ptr [rax], edx
@@ -96,7 +95,7 @@ RWD00 dq 0000000100000000h, 0000000300000002h, 0000000500000004h, 000000070000
RWD32 dq 0000000800000008h, 0000000800000008h, 0000000800000008h, 0000000800000008h
-; Total bytes of code 116, prolog size 3, PerfScore 58.68, instruction count 31, allocated bytes for code 116 (MethodHash=e72f7d0a) for method System.Linq.Enumerable+RangeIterator:Fill(System.Span`1[int],int) (FullOpts)
+; Total bytes of code 95, prolog size 3, PerfScore 55.33, instruction count 30, allocated bytes for code 95 (MethodHash=e72f7d0a) for method System.Linq.Enumerable+RangeIterator:Fill(System.Span`1[int],int) (FullOpts)
; ============================================================
Unwind Info:
-16 (-16.84%) : 23999.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:LazyAsyncMethodChecks(System.Threading.CancellationToken):this (FullOpts)@@ -37,9 +37,8 @@ G_M29193_IG02: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byr
; byrRegs +[rcx]
mov rdx, rcx
; byrRegs +[rdx]
- jmp SHORT G_M29193_IG03
- align [4 bytes for IG03]
- ;; size=15 bbWeight=1 PerfScore 5.50
+ align [6 bytes for IG03]
+ ;; size=15 bbWeight=1 PerfScore 3.75
G_M29193_IG03: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0006 {rcx rdx}, byref, isz
mov eax, dword ptr [rdx]
mov dword ptr [rsp+0x04], eax
@@ -54,11 +53,10 @@ G_M29193_IG04: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0006 {rcx rdx},
cmp eax, dword ptr [rsp+0x04]
jne SHORT G_M29193_IG03
;; size=11 bbWeight=4 PerfScore 84.00
-G_M29193_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref, isz, align
+G_M29193_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref, isz
; byrRegs -[rdx]
- jmp SHORT G_M29193_IG06
- align [14 bytes for IG06]
- ;; size=16 bbWeight=1 PerfScore 2.00
+ align [0 bytes for IG06]
+ ;; size=0 bbWeight=1 PerfScore 0.00
G_M29193_IG06: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref, isz
mov eax, dword ptr [rcx]
mov dword ptr [rsp], eax
@@ -79,7 +77,7 @@ G_M29193_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ret
;; size=5 bbWeight=1 PerfScore 1.25
-; Total bytes of code 95, prolog size 1, PerfScore 263.25, instruction count 30, allocated bytes for code 95 (MethodHash=3f218df6) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:LazyAsyncMethodChecks(System.Threading.CancellationToken):this (FullOpts)
+; Total bytes of code 79, prolog size 1, PerfScore 257.90, instruction count 28, allocated bytes for code 79 (MethodHash=3f218df6) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:LazyAsyncMethodChecks(System.Threading.CancellationToken):this (FullOpts)
; ============================================================
Unwind Info:
+3 (+1.26%) : 1911.dasm - System.SpanHelpers:LastIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int (FullOpts)@@ -73,7 +73,8 @@ G_M21910_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx},
G_M21910_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
cmp esi, 8
jge SHORT G_M21910_IG14
- ;; size=5 bbWeight=1 PerfScore 1.25
+ ;; NOP compensation instructions of 4 bytes.
+ ;; size=9 bbWeight=1 PerfScore 1.25
G_M21910_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
movsxd rax, esi
dec rax
@@ -95,13 +96,12 @@ G_M21910_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx},
je SHORT G_M21910_IG10
add rax, -4
;; size=65 bbWeight=0.50 PerfScore 11.75
-G_M21910_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
+G_M21910_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz, align
test esi, esi
jle SHORT G_M21910_IG08
movsx r10, di
- jmp SHORT G_M21910_IG07
- align [0 bytes for IG07]
- ;; size=10 bbWeight=0.50 PerfScore 1.75
+ align [1 bytes for IG07]
+ ;; size=9 bbWeight=0.50 PerfScore 0.88
G_M21910_IG07: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, loop=IG07, byref, isz
dec esi
movsx rdx, word ptr [rbx+2*rax]
@@ -180,7 +180,7 @@ G_M21910_IG18: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
ret
;; size=8 bbWeight=0.50 PerfScore 1.38
-; Total bytes of code 238, prolog size 15, PerfScore 86.58, instruction count 83, allocated bytes for code 242 (MethodHash=9eddaa69) for method System.SpanHelpers:LastIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int (FullOpts)
+; Total bytes of code 241, prolog size 15, PerfScore 85.60, instruction count 82, allocated bytes for code 241 (MethodHash=9eddaa69) for method System.SpanHelpers:LastIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int (FullOpts)
; ============================================================
Unwind Info:
+3 (+1.78%) : 26695.dasm - Microsoft.CodeAnalysis.CSharp.MethodTypeInferrer:DependsTransitivelyOn(int,int):ubyte:this (FullOpts)@@ -34,17 +34,17 @@ G_M32314_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
push rbx
sub rsp, 32
;; size=10 bbWeight=1 PerfScore 5.25
-G_M32314_IG02: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
+G_M32314_IG02: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz, align
; gcrRegs +[rcx]
xor eax, eax
mov r10, gword ptr [rcx+0x60]
; gcrRegs +[r10]
cmp dword ptr [r10+0x08], 0
jle SHORT G_M32314_IG06
+ ;; NOP compensation instructions of 4 bytes.
mov rcx, gword ptr [rcx+0x50]
- jmp SHORT G_M32314_IG03
- align [0 bytes for IG03]
- ;; size=19 bbWeight=1 PerfScore 10.25
+ align [1 bytes for IG03]
+ ;; size=22 bbWeight=1 PerfScore 8.50
G_M32314_IG03: ; bbWeight=4, gcrefRegs=0402 {rcx r10}, byrefRegs=0000 {}, byref, isz
mov r9, rcx
; gcrRegs +[r9]
@@ -121,7 +121,7 @@ G_M32314_IG10: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 169, prolog size 10, PerfScore 147.30, instruction count 66, allocated bytes for code 173 (MethodHash=4a3a81c5) for method Microsoft.CodeAnalysis.CSharp.MethodTypeInferrer:DependsTransitivelyOn(int,int):ubyte:this (FullOpts)
+; Total bytes of code 172, prolog size 10, PerfScore 145.45, instruction count 65, allocated bytes for code 172 (MethodHash=4a3a81c5) for method Microsoft.CodeAnalysis.CSharp.MethodTypeInferrer:DependsTransitivelyOn(int,int):ubyte:this (FullOpts)
; ============================================================
Unwind Info:
+3 (+2.04%) : 18650.dasm - Microsoft.ML.Transforms.MinMaxSngAggregator:Finish():this (FullOpts)@@ -32,7 +32,7 @@ G_M10231_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
sub rsp, 40
vzeroupper
;; size=9 bbWeight=1 PerfScore 3.25
-G_M10231_IG02: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
+G_M10231_IG02: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz, align
; gcrRegs +[rcx]
mov rax, gword ptr [rcx+0x08]
; gcrRegs +[rax]
@@ -40,11 +40,11 @@ G_M10231_IG02: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byr
xor r8d, r8d
test edx, edx
jle SHORT G_M10231_IG07
+ ;; NOP compensation instructions of 4 bytes.
mov r10, gword ptr [rcx+0x18]
; gcrRegs +[r10]
- jmp SHORT G_M10231_IG03
- align [0 bytes for IG03]
- ;; size=20 bbWeight=1 PerfScore 9.50
+ align [1 bytes for IG03]
+ ;; size=23 bbWeight=1 PerfScore 7.75
G_M10231_IG03: ; bbWeight=4, gcrefRegs=0403 {rax rcx r10}, byrefRegs=0000 {}, byref, isz
mov r9, r10
; gcrRegs +[r9]
@@ -105,7 +105,7 @@ G_M10231_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 147, prolog size 9, PerfScore 128.93, instruction count 49, allocated bytes for code 151 (MethodHash=3014d808) for method Microsoft.ML.Transforms.MinMaxSngAggregator:Finish():this (FullOpts)
+; Total bytes of code 150, prolog size 9, PerfScore 127.08, instruction count 48, allocated bytes for code 150 (MethodHash=3014d808) for method Microsoft.ML.Transforms.MinMaxSngAggregator:Finish():this (FullOpts)
; ============================================================
Unwind Info:
smoke_tests.nativeaot.windows.x64.checked.mch-2 (-25.00%) : 24163.dasm - Internal.TypeSystem.FieldForInstantiatedType:get_IsStatic():ubyte:this (FullOpts)@@ -17,15 +17,14 @@ G_M46894_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=0 bbWeight=1 PerfScore 0.00
G_M46894_IG02: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rcx]
- jmp SHORT G_M46894_IG03
align [0 bytes for IG03]
- ;; size=2 bbWeight=1 PerfScore 2.00
+ ;; size=0 bbWeight=1 PerfScore 0.00
G_M46894_IG03: ; bbWeight=8, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, loop=IG03, byref, isz
mov rcx, gword ptr [rcx+0x08]
jmp SHORT G_M46894_IG03
;; size=6 bbWeight=8 PerfScore 32.00
-; Total bytes of code 8, prolog size 0, PerfScore 34.80, instruction count 4, allocated bytes for code 8 (MethodHash=de3248d1) for method Internal.TypeSystem.FieldForInstantiatedType:get_IsStatic():ubyte:this (FullOpts)
+; Total bytes of code 6, prolog size 0, PerfScore 32.60, instruction count 3, allocated bytes for code 6 (MethodHash=de3248d1) for method Internal.TypeSystem.FieldForInstantiatedType:get_IsStatic():ubyte:this (FullOpts)
; ============================================================
Unwind Info:
-2 (-25.00%) : 24168.dasm - Internal.TypeSystem.FieldForInstantiatedType:get_Context():Internal.TypeSystem.TypeSystemContext:this (FullOpts)@@ -17,15 +17,14 @@ G_M44052_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=0 bbWeight=1 PerfScore 0.00
G_M44052_IG02: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rcx]
- jmp SHORT G_M44052_IG03
align [0 bytes for IG03]
- ;; size=2 bbWeight=1 PerfScore 2.00
+ ;; size=0 bbWeight=1 PerfScore 0.00
G_M44052_IG03: ; bbWeight=8, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, loop=IG03, byref, isz
mov rcx, gword ptr [rcx+0x08]
jmp SHORT G_M44052_IG03
;; size=6 bbWeight=8 PerfScore 32.00
-; Total bytes of code 8, prolog size 0, PerfScore 34.80, instruction count 4, allocated bytes for code 8 (MethodHash=73fa53eb) for method Internal.TypeSystem.FieldForInstantiatedType:get_Context():Internal.TypeSystem.TypeSystemContext:this (FullOpts)
+; Total bytes of code 6, prolog size 0, PerfScore 32.60, instruction count 3, allocated bytes for code 6 (MethodHash=73fa53eb) for method Internal.TypeSystem.FieldForInstantiatedType:get_Context():Internal.TypeSystem.TypeSystemContext:this (FullOpts)
; ============================================================
Unwind Info:
-17 (-16.67%) : 27980.dasm - System.SpanHelpers:IndexOfAnyExcept[ushort](byref,ushort,int):int (FullOpts)@@ -43,14 +43,13 @@ G_M51963_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0040 {rsi},
; gcrRegs -[rcx rdx]
; gcr arg pop 0
;; size=19 bbWeight=0.50 PerfScore 1.00
-G_M51963_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref, isz, align
+G_M51963_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref, isz
xor eax, eax
test ebx, ebx
jle SHORT G_M51963_IG06
movzx rcx, di
- jmp SHORT G_M51963_IG05
- align [15 bytes for IG05]
- ;; size=26 bbWeight=1 PerfScore 3.75
+ align [0 bytes for IG05]
+ ;; size=9 bbWeight=1 PerfScore 1.75
G_M51963_IG05: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, loop=IG05, byref, isz
movsxd rdx, eax
movzx rdx, word ptr [rsi+2*rdx]
@@ -79,7 +78,7 @@ G_M51963_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
ret
;; size=8 bbWeight=0.50 PerfScore 1.38
-; Total bytes of code 102, prolog size 15, PerfScore 43.08, instruction count 36, allocated bytes for code 102 (MethodHash=fec13504) for method System.SpanHelpers:IndexOfAnyExcept[ushort](byref,ushort,int):int (FullOpts)
+; Total bytes of code 85, prolog size 15, PerfScore 39.38, instruction count 35, allocated bytes for code 85 (MethodHash=fec13504) for method System.SpanHelpers:IndexOfAnyExcept[ushort](byref,ushort,int):int (FullOpts)
; ============================================================
Unwind Info:
+3 (+1.44%) : 19260.dasm - System.Collections.Generic.LowLevelDictionary`2+LowLevelDictEnumerator[System.__Canon,System.__Canon]:.ctor(System.Collections.Generic.LowLevelDictionary`2[System.__Canon,System.__Canon]):this (FullOpts)@@ -68,18 +68,18 @@ G_M28550_IG03: ; bbWeight=4, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000
; gcrRegs +[rcx]
cmp r14d, dword ptr [rcx+0x08]
jae SHORT G_M28550_IG11
+ ;; NOP compensation instructions of 4 bytes.
mov edx, r14d
mov r15, gword ptr [rcx+8*rdx+0x10]
; gcrRegs +[r15]
test r15, r15
je SHORT G_M28550_IG10
- ;; size=22 bbWeight=4 PerfScore 31.00
-G_M28550_IG04: ; bbWeight=2, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref, isz
+ ;; size=26 bbWeight=4 PerfScore 31.00
+G_M28550_IG04: ; bbWeight=2, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref, isz, align
; gcrRegs -[rcx]
mov r13d, dword ptr [rdi+0x08]
- jmp SHORT G_M28550_IG05
- align [0 bytes for IG05]
- ;; size=6 bbWeight=2 PerfScore 8.00
+ align [1 bytes for IG05]
+ ;; size=5 bbWeight=2 PerfScore 4.50
G_M28550_IG05: ; bbWeight=16, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref, isz
lea ecx, [rbp+0x01]
mov r12d, ecx
@@ -146,7 +146,7 @@ G_M28550_IG11: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 208, prolog size 24, PerfScore 266.70, instruction count 72, allocated bytes for code 212 (MethodHash=ae649079) for method System.Collections.Generic.LowLevelDictionary`2+LowLevelDictEnumerator[System.__Canon,System.__Canon]:.ctor(System.Collections.Generic.LowLevelDictionary`2[System.__Canon,System.__Canon]):this (FullOpts)
+; Total bytes of code 211, prolog size 24, PerfScore 263.10, instruction count 71, allocated bytes for code 211 (MethodHash=ae649079) for method System.Collections.Generic.LowLevelDictionary`2+LowLevelDictEnumerator[System.__Canon,System.__Canon]:.ctor(System.Collections.Generic.LowLevelDictionary`2[System.__Canon,System.__Canon]):this (FullOpts)
; ============================================================
Unwind Info:
+3 (+1.44%) : 1581.dasm - System.Collections.Generic.LowLevelDictionary`2+LowLevelDictEnumerator[System.__Canon,System.__Canon]:.ctor(System.Collections.Generic.LowLevelDictionary`2[System.__Canon,System.__Canon]):this (FullOpts)@@ -68,18 +68,18 @@ G_M28550_IG03: ; bbWeight=4, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000
; gcrRegs +[rcx]
cmp r14d, dword ptr [rcx+0x08]
jae SHORT G_M28550_IG11
+ ;; NOP compensation instructions of 4 bytes.
mov edx, r14d
mov r15, gword ptr [rcx+8*rdx+0x10]
; gcrRegs +[r15]
test r15, r15
je SHORT G_M28550_IG10
- ;; size=22 bbWeight=4 PerfScore 31.00
-G_M28550_IG04: ; bbWeight=2, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref, isz
+ ;; size=26 bbWeight=4 PerfScore 31.00
+G_M28550_IG04: ; bbWeight=2, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref, isz, align
; gcrRegs -[rcx]
mov r13d, dword ptr [rdi+0x08]
- jmp SHORT G_M28550_IG05
- align [0 bytes for IG05]
- ;; size=6 bbWeight=2 PerfScore 8.00
+ align [1 bytes for IG05]
+ ;; size=5 bbWeight=2 PerfScore 4.50
G_M28550_IG05: ; bbWeight=16, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref, isz
lea ecx, [rbp+0x01]
mov r12d, ecx
@@ -146,7 +146,7 @@ G_M28550_IG11: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 208, prolog size 24, PerfScore 266.70, instruction count 72, allocated bytes for code 212 (MethodHash=ae649079) for method System.Collections.Generic.LowLevelDictionary`2+LowLevelDictEnumerator[System.__Canon,System.__Canon]:.ctor(System.Collections.Generic.LowLevelDictionary`2[System.__Canon,System.__Canon]):this (FullOpts)
+; Total bytes of code 211, prolog size 24, PerfScore 263.10, instruction count 71, allocated bytes for code 211 (MethodHash=ae649079) for method System.Collections.Generic.LowLevelDictionary`2+LowLevelDictEnumerator[System.__Canon,System.__Canon]:.ctor(System.Collections.Generic.LowLevelDictionary`2[System.__Canon,System.__Canon]):this (FullOpts)
; ============================================================
Unwind Info:
+3 (+1.44%) : 16687.dasm - System.Collections.Generic.LowLevelDictionary`2+LowLevelDictEnumerator[System.__Canon,System.__Canon]:.ctor(System.Collections.Generic.LowLevelDictionary`2[System.__Canon,System.__Canon]):this (FullOpts)@@ -68,18 +68,18 @@ G_M28550_IG03: ; bbWeight=4, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000
; gcrRegs +[rcx]
cmp r14d, dword ptr [rcx+0x08]
jae SHORT G_M28550_IG11
+ ;; NOP compensation instructions of 4 bytes.
mov edx, r14d
mov r15, gword ptr [rcx+8*rdx+0x10]
; gcrRegs +[r15]
test r15, r15
je SHORT G_M28550_IG10
- ;; size=22 bbWeight=4 PerfScore 31.00
-G_M28550_IG04: ; bbWeight=2, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref, isz
+ ;; size=26 bbWeight=4 PerfScore 31.00
+G_M28550_IG04: ; bbWeight=2, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref, isz, align
; gcrRegs -[rcx]
mov r13d, dword ptr [rdi+0x08]
- jmp SHORT G_M28550_IG05
- align [0 bytes for IG05]
- ;; size=6 bbWeight=2 PerfScore 8.00
+ align [1 bytes for IG05]
+ ;; size=5 bbWeight=2 PerfScore 4.50
G_M28550_IG05: ; bbWeight=16, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref, isz
lea ecx, [rbp+0x01]
mov r12d, ecx
@@ -146,7 +146,7 @@ G_M28550_IG11: ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 208, prolog size 24, PerfScore 266.70, instruction count 72, allocated bytes for code 212 (MethodHash=ae649079) for method System.Collections.Generic.LowLevelDictionary`2+LowLevelDictEnumerator[System.__Canon,System.__Canon]:.ctor(System.Collections.Generic.LowLevelDictionary`2[System.__Canon,System.__Canon]):this (FullOpts)
+; Total bytes of code 211, prolog size 24, PerfScore 263.10, instruction count 71, allocated bytes for code 211 (MethodHash=ae649079) for method System.Collections.Generic.LowLevelDictionary`2+LowLevelDictEnumerator[System.__Canon,System.__Canon]:.ctor(System.Collections.Generic.LowLevelDictionary`2[System.__Canon,System.__Canon]):this (FullOpts)
; ============================================================
Unwind Info:
DetailsImprovements/regressions per collection
Context information
jit-analyze output |
SPMI diffs targeting Windows arm64 with loop alignment on: MISSED contexts: 641 (0.03%) Overall (-64,340 bytes)
MinOpts (+0 bytes)
FullOpts (-64,340 bytes)
Example diffsbenchmarks.run.windows.arm64.checked.mch-20 (-29.41%) : 20163.dasm - StoreBlock.LocalAddress:InitBlockAllOnes16():this (FullOpts)@@ -19,15 +19,14 @@ G_M63388_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x20]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M63388_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, align
+G_M63388_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x0]
mov w1, wzr
- b G_M63388_IG03
- align [4 bytes for IG03]
- align [4 bytes]
- align [4 bytes]
- align [4 bytes]
- ;; size=24 bbWeight=1 PerfScore 1.50
+ align [0 bytes for IG03]
+ align [0 bytes]
+ align [0 bytes]
+ align [0 bytes]
+ ;; size=4 bbWeight=1 PerfScore 0.50
G_M63388_IG03: ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, loop=IG03, byref, isz
movn x2, #0
stp x2, x2, [fp, #0x10]
@@ -44,7 +43,7 @@ G_M63388_IG05: ; bbWeight=1, epilog, nogc, extend
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 68, prolog size 8, PerfScore 28.80, instruction count 17, allocated bytes for code 68 (MethodHash=36ec0863) for method StoreBlock.LocalAddress:InitBlockAllOnes16():this (FullOpts)
+; Total bytes of code 48, prolog size 8, PerfScore 25.80, instruction count 16, allocated bytes for code 48 (MethodHash=36ec0863) for method StoreBlock.LocalAddress:InitBlockAllOnes16():this (FullOpts)
; ============================================================
Unwind Info:
@@ -55,7 +54,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 17 (0x00011) Actual length = 68 (0x000044)
+ Function Length : 12 (0x0000c) Actual length = 48 (0x000030)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-29.41%) : 23406.dasm - StoreBlock.LocalAddress:InitBlockAllZeros32():this (FullOpts)@@ -19,15 +19,14 @@ G_M6844_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x30]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M6844_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, align
+G_M6844_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x0]
mov w1, wzr
- b G_M6844_IG03
- align [4 bytes for IG03]
- align [4 bytes]
- align [4 bytes]
- align [4 bytes]
- ;; size=24 bbWeight=1 PerfScore 1.50
+ align [0 bytes for IG03]
+ align [0 bytes]
+ align [0 bytes]
+ align [0 bytes]
+ ;; size=4 bbWeight=1 PerfScore 0.50
G_M6844_IG03: ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, loop=IG03, byref, isz
stp xzr, xzr, [fp, #0x10]
stp xzr, xzr, [fp, #0x20]
@@ -44,7 +43,7 @@ G_M6844_IG05: ; bbWeight=1, epilog, nogc, extend
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 68, prolog size 8, PerfScore 30.80, instruction count 17, allocated bytes for code 68 (MethodHash=7b31e543) for method StoreBlock.LocalAddress:InitBlockAllZeros32():this (FullOpts)
+; Total bytes of code 48, prolog size 8, PerfScore 27.80, instruction count 16, allocated bytes for code 48 (MethodHash=7b31e543) for method StoreBlock.LocalAddress:InitBlockAllZeros32():this (FullOpts)
; ============================================================
Unwind Info:
@@ -55,7 +54,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 17 (0x00011) Actual length = 68 (0x000044)
+ Function Length : 12 (0x0000c) Actual length = 48 (0x000030)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-29.41%) : 22944.dasm - StoreBlock.LocalAddress:InitBlockAllOnes8():this (FullOpts)@@ -19,15 +19,14 @@ G_M58755_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x20]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M58755_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, align
+G_M58755_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x0]
mov w1, wzr
- b G_M58755_IG03
- align [4 bytes for IG03]
- align [4 bytes]
- align [4 bytes]
- align [4 bytes]
- ;; size=24 bbWeight=1 PerfScore 1.50
+ align [0 bytes for IG03]
+ align [0 bytes]
+ align [0 bytes]
+ align [0 bytes]
+ ;; size=4 bbWeight=1 PerfScore 0.50
G_M58755_IG03: ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, loop=IG03, byref, isz
movn x2, #0
str x2, [fp, #0x18] // [V01 loc0]
@@ -44,7 +43,7 @@ G_M58755_IG05: ; bbWeight=1, epilog, nogc, extend
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 68, prolog size 8, PerfScore 28.80, instruction count 17, allocated bytes for code 68 (MethodHash=f87c1a7c) for method StoreBlock.LocalAddress:InitBlockAllOnes8():this (FullOpts)
+; Total bytes of code 48, prolog size 8, PerfScore 25.80, instruction count 16, allocated bytes for code 48 (MethodHash=f87c1a7c) for method StoreBlock.LocalAddress:InitBlockAllOnes8():this (FullOpts)
; ============================================================
Unwind Info:
@@ -55,7 +54,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 17 (0x00011) Actual length = 68 (0x000044)
+ Function Length : 12 (0x0000c) Actual length = 48 (0x000030)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+0 (0.00%) : 24352.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:OnesComplementBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (FullOpts)No diffs found? +0 (0.00%) : 24368.dasm - System.Tests.Perf_Array:ArrayAssign3D():this (FullOpts)No diffs found? +0 (0.00%) : 24400.dasm - PerfLabTests.CastingPerf:IFooFooIsIFoo():this (FullOpts)@@ -34,12 +34,11 @@ G_M22144_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
movk x2, #0xD1FFAB1E LSL #32
ldr x3, [x2]
; gcrRegs +[x3]
- b G_M22144_IG03
align [4 bytes for IG03]
align [4 bytes]
+ align [4 bytes]
align [0 bytes]
- align [0 bytes]
- ;; size=56 bbWeight=1 PerfScore 12.00
+ ;; size=56 bbWeight=1 PerfScore 12.50
G_M22144_IG03: ; bbWeight=4, gcrefRegs=0008 {x3}, byrefRegs=0000 {}, loop=IG03, byref, isz
add x14, x2, #72
mov x15, x3
@@ -56,7 +55,7 @@ G_M22144_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 96, prolog size 8, PerfScore 41.10, instruction count 26, allocated bytes for code 96 (MethodHash=a08fa97f) for method PerfLabTests.CastingPerf:IFooFooIsIFoo():this (FullOpts)
+; Total bytes of code 96, prolog size 8, PerfScore 41.60, instruction count 25, allocated bytes for code 96 (MethodHash=a08fa97f) for method PerfLabTests.CastingPerf:IFooFooIsIFoo():this (FullOpts)
; ============================================================
Unwind Info:
benchmarks.run_pgo.windows.arm64.checked.mch-24 (-8.45%) : 94770.dasm - System.Enum+EnumInfo`1[uint]:.ctor(ubyte,uint[],System.String[]):this (Tier1)@@ -67,12 +67,11 @@ G_M39553_IG02: ; bbWeight=1, gcrefRegs=180008 {x3 x19 x20}, byrefRegs=000
G_M39553_IG03: ; bbWeight=0.81, gcrefRegs=180008 {x3 x19 x20}, byrefRegs=0000 {}, byref, isz
add x1, x20, #16
; byrRegs +[x1]
- b G_M39553_IG04
align [0 bytes for IG04]
align [0 bytes]
align [0 bytes]
align [0 bytes]
- ;; size=8 bbWeight=0.81 PerfScore 1.21
+ ;; size=4 bbWeight=0.81 PerfScore 0.40
G_M39553_IG04: ; bbWeight=4.17, gcrefRegs=180008 {x3 x19 x20}, byrefRegs=0002 {x1}, byref, isz
sub w0, w2, #1
cmp w0, w21
@@ -98,15 +97,14 @@ G_M39553_IG06: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
cmp w21, #0
ble G_M39553_IG09
;; size=12 bbWeight=1 PerfScore 2.00
-G_M39553_IG07: ; bbWeight=0.84, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, align
+G_M39553_IG07: ; bbWeight=0.84, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
add x1, x20, #16
; byrRegs +[x1]
- b G_M39553_IG08
- align [4 bytes for IG08]
- align [4 bytes]
- align [4 bytes]
- align [4 bytes]
- ;; size=24 bbWeight=0.84 PerfScore 1.26
+ align [0 bytes for IG08]
+ align [0 bytes]
+ align [0 bytes]
+ align [0 bytes]
+ ;; size=4 bbWeight=0.84 PerfScore 0.42
G_M39553_IG08: ; bbWeight=5.17, gcrefRegs=80000 {x19}, byrefRegs=0002 {x1}, loop=IG08, byref, isz
; gcrRegs -[x20]
ldr w4, [x1, w0, UXTW #2]
@@ -167,7 +165,7 @@ G_M39553_IG14: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
b G_M39553_IG10
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 284, prolog size 24, PerfScore 145.78, instruction count 75, allocated bytes for code 284 (MethodHash=267b657e) for method System.Enum+EnumInfo`1[uint]:.ctor(ubyte,uint[],System.String[]):this (Tier1)
+; Total bytes of code 260, prolog size 24, PerfScore 141.74, instruction count 73, allocated bytes for code 260 (MethodHash=267b657e) for method System.Enum+EnumInfo`1[uint]:.ctor(ubyte,uint[],System.String[]):this (Tier1)
; ============================================================
Unwind Info:
@@ -178,7 +176,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 71 (0x00047) Actual length = 284 (0x00011c)
+ Function Length : 65 (0x00041) Actual length = 260 (0x000104)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-24 (-7.06%) : 68605.dasm - Roslyn.Utilities.StringTable:AddSharedUtf8(System.ReadOnlySpan`1[ubyte]):System.String (Tier1)@@ -55,15 +55,14 @@ G_M27107_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byre
cmp w2, #0
ble G_M27107_IG05
;; size=24 bbWeight=1 PerfScore 3.50
-G_M27107_IG03: ; bbWeight=0.94, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, align
+G_M27107_IG03: ; bbWeight=0.94, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
movz w5, #0xD1FFAB1E
movk w5, #0xD1FFAB1E LSL #16
- b G_M27107_IG04
- align [4 bytes for IG04]
- align [4 bytes]
- align [4 bytes]
- align [4 bytes]
- ;; size=28 bbWeight=0.94 PerfScore 1.89
+ align [0 bytes for IG04]
+ align [0 bytes]
+ align [0 bytes]
+ align [0 bytes]
+ ;; size=8 bbWeight=0.94 PerfScore 0.94
G_M27107_IG04: ; bbWeight=17.06, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, loop=IG04, byref, isz
ldrb w6, [x0, w4, UXTW #2]
orr w3, w3, w6
@@ -117,12 +116,11 @@ G_M27107_IG08: ; bbWeight=0.50, gcrefRegs=0102 {x1 x8}, byrefRegs=0001 {x
G_M27107_IG09: ; bbWeight=0.48, gcrefRegs=0102 {x1 x8}, byrefRegs=0001 {x0}, byref, isz
add x9, x8, #12
; byrRegs +[x9]
- b G_M27107_IG10
align [0 bytes for IG10]
align [0 bytes]
align [0 bytes]
align [0 bytes]
- ;; size=8 bbWeight=0.48 PerfScore 0.71
+ ;; size=4 bbWeight=0.48 PerfScore 0.24
G_M27107_IG10: ; bbWeight=8.54, gcrefRegs=0102 {x1 x8}, byrefRegs=0201 {x0 x9}, loop=IG10, byref, isz
mov w10, w7
ldrb w11, [x0, x10]
@@ -187,7 +185,7 @@ G_M27107_IG17: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
brk_windows #0
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 340, prolog size 12, PerfScore 312.36, instruction count 89, allocated bytes for code 340 (MethodHash=3263961c) for method Roslyn.Utilities.StringTable:AddSharedUtf8(System.ReadOnlySpan`1[ubyte]):System.String (Tier1)
+; Total bytes of code 316, prolog size 12, PerfScore 308.54, instruction count 87, allocated bytes for code 316 (MethodHash=3263961c) for method Roslyn.Utilities.StringTable:AddSharedUtf8(System.ReadOnlySpan`1[ubyte]):System.String (Tier1)
; ============================================================
Unwind Info:
@@ -198,7 +196,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 85 (0x00055) Actual length = 340 (0x000154)
+ Function Length : 79 (0x0004f) Actual length = 316 (0x00013c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-4 (-6.67%) : 41987.dasm - System.Buffers.Tests.RentReturnArrayPoolTests`1[System.__Canon]:IterateAll(System.__Canon[]):System.__Canon (Tier1)@@ -38,12 +38,11 @@ G_M36397_IG03: ; bbWeight=1.00, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, b
add x1, x1, #16
; gcrRegs -[x1]
; byrRegs +[x1]
- b G_M36397_IG04
align [0 bytes for IG04]
align [0 bytes]
align [0 bytes]
align [0 bytes]
- ;; size=8 bbWeight=1.00 PerfScore 1.50
+ ;; size=4 bbWeight=1.00 PerfScore 0.50
G_M36397_IG04: ; bbWeight=2709504, gcrefRegs=0000 {}, byrefRegs=0002 {x1}, loop=IG04, byref, isz
ldr x0, [x1, w2, UXTW #3]
; gcrRegs +[x0]
@@ -57,7 +56,7 @@ G_M36397_IG05: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 60, prolog size 8, PerfScore 13547536.50, instruction count 19, allocated bytes for code 60 (MethodHash=ef0271d2) for method System.Buffers.Tests.RentReturnArrayPoolTests`1[System.__Canon]:IterateAll(System.__Canon[]):System.__Canon (Tier1)
+; Total bytes of code 56, prolog size 8, PerfScore 13547535.10, instruction count 18, allocated bytes for code 56 (MethodHash=ef0271d2) for method System.Buffers.Tests.RentReturnArrayPoolTests`1[System.__Canon]:IterateAll(System.__Canon[]):System.__Canon (Tier1)
; ============================================================
Unwind Info:
@@ -68,7 +67,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 15 (0x0000f) Actual length = 60 (0x00003c)
+ Function Length : 14 (0x0000e) Actual length = 56 (0x000038)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+0 (0.00%) : 95616.dasm - System.Text.RegularExpressions.RegexNode:ChildCount():int:this (Tier1)No diffs found? +0 (0.00%) : 95632.dasm - System.Text.RegularExpressions.RegexParser:ScanGroupOpen():System.Text.RegularExpressions.RegexNode:this (Tier1)No diffs found? +0 (0.00%) : 95648.dasm - System.Text.RegularExpressions.RegexPrefixAnalyzer:g__Process|0_0(System.Text.RegularExpressions.RegexNode,byref):ubyte (Tier1)No diffs found? benchmarks.run_tiered.windows.arm64.checked.mch-20 (-27.78%) : 39523.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsUseSiteDiagnosticPopulated():this (Tier1)@@ -21,15 +21,14 @@ G_M11989_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M11989_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, align
+G_M11989_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
; byrRegs +[x0]
ldrsb wzr, [x0]
- b G_M11989_IG03
- align [4 bytes for IG03]
- align [4 bytes]
- align [4 bytes]
- align [4 bytes]
- ;; size=24 bbWeight=1 PerfScore 4.00
+ align [0 bytes for IG03]
+ align [0 bytes]
+ align [0 bytes]
+ align [0 bytes]
+ ;; size=4 bbWeight=1 PerfScore 3.00
G_M11989_IG03: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
ldr w1, [x0]
orr w2, w1, #0xD1FFAB1E
@@ -48,7 +47,7 @@ G_M11989_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 72, prolog size 8, PerfScore 74.70, instruction count 18, allocated bytes for code 72 (MethodHash=acc9d12a) for method Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsUseSiteDiagnosticPopulated():this (Tier1)
+; Total bytes of code 52, prolog size 8, PerfScore 71.70, instruction count 17, allocated bytes for code 52 (MethodHash=acc9d12a) for method Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsUseSiteDiagnosticPopulated():this (Tier1)
; ============================================================
Unwind Info:
@@ -59,7 +58,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 18 (0x00012) Actual length = 72 (0x000048)
+ Function Length : 13 (0x0000d) Actual length = 52 (0x000034)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-27.78%) : 39510.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsUnmanagedCallersOnlyAttributePopulated():this (Tier1)@@ -21,15 +21,14 @@ G_M48426_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M48426_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, align
+G_M48426_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
; byrRegs +[x0]
ldrsb wzr, [x0]
- b G_M48426_IG03
- align [4 bytes for IG03]
- align [4 bytes]
- align [4 bytes]
- align [4 bytes]
- ;; size=24 bbWeight=1 PerfScore 4.00
+ align [0 bytes for IG03]
+ align [0 bytes]
+ align [0 bytes]
+ align [0 bytes]
+ ;; size=4 bbWeight=1 PerfScore 3.00
G_M48426_IG03: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
ldr w1, [x0]
orr w2, w1, #0xD1FFAB1E
@@ -48,7 +47,7 @@ G_M48426_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 72, prolog size 8, PerfScore 74.70, instruction count 18, allocated bytes for code 72 (MethodHash=9c5542d5) for method Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsUnmanagedCallersOnlyAttributePopulated():this (Tier1)
+; Total bytes of code 52, prolog size 8, PerfScore 71.70, instruction count 17, allocated bytes for code 52 (MethodHash=9c5542d5) for method Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsUnmanagedCallersOnlyAttributePopulated():this (Tier1)
; ============================================================
Unwind Info:
@@ -59,7 +58,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 18 (0x00012) Actual length = 72 (0x000048)
+ Function Length : 13 (0x0000d) Actual length = 52 (0x000034)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-19.23%) : 39175.dasm - Microsoft.CodeAnalysis.CSharp.BoundNodeExtensions:HasErrors[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):ubyte (Tier1)@@ -39,7 +39,7 @@ G_M60117_IG04: ; bbWeight=0.50, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=0.50 PerfScore 1.00
-G_M60117_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, gcvars, byref, isz, align
+G_M60117_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[x1]
mov w0, wzr
ldr w2, [x1, #0x08]
@@ -48,12 +48,11 @@ G_M60117_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
add x1, x1, #16
; gcrRegs -[x1]
; byrRegs +[x1]
- b G_M60117_IG06
- align [4 bytes for IG06]
- align [4 bytes]
- align [4 bytes]
- align [4 bytes]
- ;; size=40 bbWeight=0.50 PerfScore 3.25
+ align [0 bytes for IG06]
+ align [0 bytes]
+ align [0 bytes]
+ align [0 bytes]
+ ;; size=20 bbWeight=0.50 PerfScore 2.75
G_M60117_IG06: ; bbWeight=3.96, gcrefRegs=0000 {}, byrefRegs=0002 {x1}, loop=IG06, byref, isz
ldr x3, [x1, w0, UXTW #3]
; gcrRegs +[x3]
@@ -76,7 +75,7 @@ G_M60117_IG09: ; bbWeight=0.50, epilog, nogc, extend
ret lr
;; size=8 bbWeight=0.50 PerfScore 1.00
-; Total bytes of code 104, prolog size 8, PerfScore 54.79, instruction count 26, allocated bytes for code 104 (MethodHash=df16152a) for method Microsoft.CodeAnalysis.CSharp.BoundNodeExtensions:HasErrors[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):ubyte (Tier1)
+; Total bytes of code 84, prolog size 8, PerfScore 52.29, instruction count 25, allocated bytes for code 84 (MethodHash=df16152a) for method Microsoft.CodeAnalysis.CSharp.BoundNodeExtensions:HasErrors[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):ubyte (Tier1)
; ============================================================
Unwind Info:
@@ -87,7 +86,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
+ Function Length : 21 (0x00015) Actual length = 84 (0x000054)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+0 (0.00%) : 48592.dasm - System.Threading.TimerQueueTimer:CallCallback(ubyte):this (Tier0)No diffs found? +0 (0.00%) : 48608.dasm - System.Threading.Tests.Perf_Timer:ShortScheduleAndDisposeWithFiringTimers():this (Tier0)No diffs found? +0 (0.00%) : 48624.dasm - StoreBlock.LocalAddress:CopyBlock64():this (Tier0)No diffs found? coreclr_tests.run.windows.arm64.checked.mch-20 (-33.33%) : 557108.dasm - Program:Test(System.String) (FullOpts)@@ -19,15 +19,14 @@ G_M32957_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M32957_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, align
+G_M32957_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x0]
mov w1, wzr
- b G_M32957_IG03
- align [4 bytes for IG03]
- align [4 bytes]
- align [4 bytes]
- align [4 bytes]
- ;; size=24 bbWeight=1 PerfScore 1.50
+ align [0 bytes for IG03]
+ align [0 bytes]
+ align [0 bytes]
+ align [0 bytes]
+ ;; size=4 bbWeight=1 PerfScore 0.50
G_M32957_IG03: ; bbWeight=4.00, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
cbz x0, G_M32957_IG05
;; size=4 bbWeight=4.00 PerfScore 4.00
@@ -45,7 +44,7 @@ G_M32957_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 60, prolog size 8, PerfScore 28.54, instruction count 15, allocated bytes for code 60 (MethodHash=4fcd7f42) for method Program:Test(System.String) (FullOpts)
+; Total bytes of code 40, prolog size 8, PerfScore 25.54, instruction count 14, allocated bytes for code 40 (MethodHash=4fcd7f42) for method Program:Test(System.String) (FullOpts)
; ============================================================
Unwind Info:
@@ -56,7 +55,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 15 (0x0000f) Actual length = 60 (0x00003c)
+ Function Length : 10 (0x0000a) Actual length = 40 (0x000028)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-33.33%) : 611685.dasm - test:test_208():uint (FullOpts)@@ -17,14 +17,13 @@ G_M61720_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M61720_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, align
+G_M61720_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov w0, wzr
- b G_M61720_IG03
- align [4 bytes for IG03]
- align [4 bytes]
- align [4 bytes]
- align [4 bytes]
- ;; size=24 bbWeight=1 PerfScore 1.50
+ align [0 bytes for IG03]
+ align [0 bytes]
+ align [0 bytes]
+ align [0 bytes]
+ ;; size=4 bbWeight=1 PerfScore 0.50
G_M61720_IG03: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
add w1, w0, #1
cmp w1, #10
@@ -39,7 +38,7 @@ G_M61720_IG05: ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0000 {
b G_M61720_IG03
;; size=8 bbWeight=2 PerfScore 3.00
-; Total bytes of code 60, prolog size 8, PerfScore 22.00, instruction count 15, allocated bytes for code 60 (MethodHash=bbaf0ee7) for method test:test_208():uint (FullOpts)
+; Total bytes of code 40, prolog size 8, PerfScore 19.00, instruction count 14, allocated bytes for code 40 (MethodHash=bbaf0ee7) for method test:test_208():uint (FullOpts)
; ============================================================
Unwind Info:
@@ -50,7 +49,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 15 (0x0000f) Actual length = 60 (0x00003c)
+ Function Length : 10 (0x0000a) Actual length = 40 (0x000028)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-33.33%) : 611672.dasm - test:test_108():long (FullOpts)@@ -17,14 +17,13 @@ G_M49751_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M49751_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, align
+G_M49751_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov x0, xzr
- b G_M49751_IG03
- align [4 bytes for IG03]
- align [4 bytes]
- align [4 bytes]
- align [4 bytes]
- ;; size=24 bbWeight=1 PerfScore 1.50
+ align [0 bytes for IG03]
+ align [0 bytes]
+ align [0 bytes]
+ align [0 bytes]
+ ;; size=4 bbWeight=1 PerfScore 0.50
G_M49751_IG03: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
add x1, x0, #1
cmp x1, #10
@@ -39,7 +38,7 @@ G_M49751_IG05: ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0000 {
b G_M49751_IG03
;; size=8 bbWeight=2 PerfScore 3.00
-; Total bytes of code 60, prolog size 8, PerfScore 22.00, instruction count 15, allocated bytes for code 60 (MethodHash=5a1b3da8) for method test:test_108():long (FullOpts)
+; Total bytes of code 40, prolog size 8, PerfScore 19.00, instruction count 14, allocated bytes for code 40 (MethodHash=5a1b3da8) for method test:test_108():long (FullOpts)
; ============================================================
Unwind Info:
@@ -50,7 +49,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 15 (0x0000f) Actual length = 60 (0x00003c)
+ Function Length : 10 (0x0000a) Actual length = 40 (0x000028)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+0 (0.00%) : 618128.dasm - System.ConsolePal:GetBufferInfo(ubyte,byref):Interop+Kernel32+CONSOLE_SCREEN_BUFFER_INFO (FullOpts)No diffs found? +0 (0.00%) : 618144.dasm - Program:<$>g__TestExecutor6|0_7(System.IO.StreamWriter,System.IO.StreamWriter,byref) (FullOpts)No diffs found? +0 (0.00%) : 618160.dasm - Program:<$>g__TestExecutor22|0_23(System.IO.StreamWriter,System.IO.StreamWriter,byref) (FullOpts)No diffs found? libraries.crossgen2.windows.arm64.checked.mch+0 (0.00%) : 1.dasm - ThisAssembly:.cctor() (FullOpts)No diffs found? +0 (0.00%) : 17.dasm - Xunit.JsonBuffer:ReadString():System.String:this (FullOpts)No diffs found? +0 (0.00%) : 33.dasm - Xunit.JsonDeserializerResource:Format_FloatNumberOverflow(System.String):System.String (FullOpts)No diffs found? +0 (0.00%) : 243264.dasm - Microsoft.Extensions.Logging.Logger:Log[System.__Canon](int,Microsoft.Extensions.Logging.EventId,System.__Canon,System.Exception,System.Func`3[System.__Canon,System.Exception,System.String]):this (FullOpts)No diffs found? +0 (0.00%) : 243280.dasm - Microsoft.Extensions.Logging.FilterLoggingBuilderExtensions+<>c__DisplayClass12_0:b__0(System.String,System.String,int):ubyte:this (FullOpts)No diffs found? +0 (0.00%) : 243296.dasm - Microsoft.Extensions.Logging.Logger:g__LoggerLog|14_0[System.__Canon](int,Microsoft.Extensions.Logging.EventId,Microsoft.Extensions.Logging.ILogger,System.Exception,System.Func`3[System.__Canon,System.Exception,System.String],byref,byref) (FullOpts)No diffs found? libraries.pmi.windows.arm64.checked.mch-20 (-29.41%) : 225605.dasm - System.Text.EUCJPEncoding:CleanUpEndBytes(ulong):this (FullOpts)@@ -18,14 +18,13 @@ G_M54886_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M54886_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, align
+G_M54886_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov w0, #161
- b G_M54886_IG03
- align [4 bytes for IG03]
- align [4 bytes]
- align [4 bytes]
- align [4 bytes]
- ;; size=24 bbWeight=1 PerfScore 1.50
+ align [0 bytes for IG03]
+ align [0 bytes]
+ align [0 bytes]
+ align [0 bytes]
+ ;; size=4 bbWeight=1 PerfScore 0.50
G_M54886_IG03: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, loop=IG03, byref, isz
mov w2, #0xD1FFAB1E
strh w2, [x1, w0, SXTW #2]
@@ -42,7 +41,7 @@ G_M54886_IG05: ; bbWeight=1, epilog, nogc, extend
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 68, prolog size 8, PerfScore 27.30, instruction count 17, allocated bytes for code 68 (MethodHash=d79b2999) for method System.Text.EUCJPEncoding:CleanUpEndBytes(ulong):this (FullOpts)
+; Total bytes of code 48, prolog size 8, PerfScore 24.30, instruction count 16, allocated bytes for code 48 (MethodHash=d79b2999) for method System.Text.EUCJPEncoding:CleanUpEndBytes(ulong):this (FullOpts)
; ============================================================
Unwind Info:
@@ -53,7 +52,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 17 (0x00011) Actual length = 68 (0x000044)
+ Function Length : 12 (0x0000c) Actual length = 48 (0x000030)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-27.78%) : 69444.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsObsoleteAttributePopulated():this (FullOpts)@@ -21,15 +21,14 @@ G_M39023_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M39023_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, align
+G_M39023_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
; byrRegs +[x0]
ldrsb wzr, [x0]
- b G_M39023_IG03
- align [4 bytes for IG03]
- align [4 bytes]
- align [4 bytes]
- align [4 bytes]
- ;; size=24 bbWeight=1 PerfScore 4.00
+ align [0 bytes for IG03]
+ align [0 bytes]
+ align [0 bytes]
+ align [0 bytes]
+ ;; size=4 bbWeight=1 PerfScore 3.00
G_M39023_IG03: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
ldr w1, [x0]
orr w2, w1, #0xD1FFAB1E
@@ -48,7 +47,7 @@ G_M39023_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 72, prolog size 8, PerfScore 74.70, instruction count 18, allocated bytes for code 72 (MethodHash=e0dd6790) for method Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsObsoleteAttributePopulated():this (FullOpts)
+; Total bytes of code 52, prolog size 8, PerfScore 71.70, instruction count 17, allocated bytes for code 52 (MethodHash=e0dd6790) for method Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsObsoleteAttributePopulated():this (FullOpts)
; ============================================================
Unwind Info:
@@ -59,7 +58,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 18 (0x00012) Actual length = 72 (0x000048)
+ Function Length : 13 (0x0000d) Actual length = 52 (0x000034)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-27.78%) : 120084.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsObsoleteAttributePopulated():this (FullOpts)@@ -21,15 +21,14 @@ G_M11770_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M11770_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, align
+G_M11770_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
; byrRegs +[x0]
ldrsb wzr, [x0]
- b G_M11770_IG03
- align [4 bytes for IG03]
- align [4 bytes]
- align [4 bytes]
- align [4 bytes]
- ;; size=24 bbWeight=1 PerfScore 4.00
+ align [0 bytes for IG03]
+ align [0 bytes]
+ align [0 bytes]
+ align [0 bytes]
+ ;; size=4 bbWeight=1 PerfScore 3.00
G_M11770_IG03: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
ldr w1, [x0]
orr w2, w1, #0xD1FFAB1E
@@ -48,7 +47,7 @@ G_M11770_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 72, prolog size 8, PerfScore 74.70, instruction count 18, allocated bytes for code 72 (MethodHash=7468d205) for method Microsoft.CodeAnalysis.VisualBasic.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsObsoleteAttributePopulated():this (FullOpts)
+; Total bytes of code 52, prolog size 8, PerfScore 71.70, instruction count 17, allocated bytes for code 52 (MethodHash=7468d205) for method Microsoft.CodeAnalysis.VisualBasic.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsObsoleteAttributePopulated():this (FullOpts)
; ============================================================
Unwind Info:
@@ -59,7 +58,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 18 (0x00012) Actual length = 72 (0x000048)
+ Function Length : 13 (0x0000d) Actual length = 52 (0x000034)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+0 (0.00%) : 304304.dasm - Xunit.TestMessageVisitor+<>c:b__2_30(Xunit.TestMessageVisitor,Xunit.Abstractions.ITestCollectionStarting):ubyte:this (FullOpts)No diffs found? +0 (0.00%) : 304320.dasm - Xunit.ExceptionUtility+d__9:.ctor(int):this (FullOpts)No diffs found? +0 (0.00%) : 304336.dasm - Xunit.Sdk.XunitWorkerThread+<>c:b__4_0(System.Object):this (FullOpts)No diffs found? libraries_tests.run.windows.arm64.Release.mch-20 (-27.78%) : 63652.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsConditionalAttributePopulated():this (Tier1)@@ -21,15 +21,14 @@ G_M55704_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M55704_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, align
+G_M55704_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
; byrRegs +[x0]
ldrsb wzr, [x0]
- b G_M55704_IG03
- align [4 bytes for IG03]
- align [4 bytes]
- align [4 bytes]
- align [4 bytes]
- ;; size=24 bbWeight=1 PerfScore 4.00
+ align [0 bytes for IG03]
+ align [0 bytes]
+ align [0 bytes]
+ align [0 bytes]
+ ;; size=4 bbWeight=1 PerfScore 3.00
G_M55704_IG03: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
ldr w1, [x0]
orr w2, w1, #0xD1FFAB1E
@@ -48,7 +47,7 @@ G_M55704_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 72, prolog size 8, PerfScore 74.37, instruction count 18, allocated bytes for code 72 (MethodHash=303c2667) for method Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsConditionalAttributePopulated():this (Tier1)
+; Total bytes of code 52, prolog size 8, PerfScore 71.37, instruction count 17, allocated bytes for code 52 (MethodHash=303c2667) for method Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsConditionalAttributePopulated():this (Tier1)
; ============================================================
Unwind Info:
@@ -59,7 +58,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 18 (0x00012) Actual length = 72 (0x000048)
+ Function Length : 13 (0x0000d) Actual length = 52 (0x000034)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-27.78%) : 54856.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsUnmanagedCallersOnlyAttributePopulated():this (Tier1)@@ -21,15 +21,14 @@ G_M48426_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M48426_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, align
+G_M48426_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
; byrRegs +[x0]
ldrsb wzr, [x0]
- b G_M48426_IG03
- align [4 bytes for IG03]
- align [4 bytes]
- align [4 bytes]
- align [4 bytes]
- ;; size=24 bbWeight=1 PerfScore 4.00
+ align [0 bytes for IG03]
+ align [0 bytes]
+ align [0 bytes]
+ align [0 bytes]
+ ;; size=4 bbWeight=1 PerfScore 3.00
G_M48426_IG03: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
ldr w1, [x0]
orr w2, w1, #0xD1FFAB1E
@@ -48,7 +47,7 @@ G_M48426_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 72, prolog size 8, PerfScore 74.37, instruction count 18, allocated bytes for code 72 (MethodHash=9c5542d5) for method Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsUnmanagedCallersOnlyAttributePopulated():this (Tier1)
+; Total bytes of code 52, prolog size 8, PerfScore 71.37, instruction count 17, allocated bytes for code 52 (MethodHash=9c5542d5) for method Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsUnmanagedCallersOnlyAttributePopulated():this (Tier1)
; ============================================================
Unwind Info:
@@ -59,7 +58,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 18 (0x00012) Actual length = 72 (0x000048)
+ Function Length : 13 (0x0000d) Actual length = 52 (0x000034)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-27.78%) : 59304.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+Flags:SetFlattenedMembersIsSorted():this (Tier1)@@ -21,15 +21,14 @@ G_M26681_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M26681_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, align
+G_M26681_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
; byrRegs +[x0]
ldrsb wzr, [x0]
- b G_M26681_IG03
- align [4 bytes for IG03]
- align [4 bytes]
- align [4 bytes]
- align [4 bytes]
- ;; size=24 bbWeight=1 PerfScore 4.00
+ align [0 bytes for IG03]
+ align [0 bytes]
+ align [0 bytes]
+ align [0 bytes]
+ ;; size=4 bbWeight=1 PerfScore 3.00
G_M26681_IG03: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
ldr w1, [x0]
orr w2, w1, #0xD1FFAB1E
@@ -48,7 +47,7 @@ G_M26681_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 72, prolog size 8, PerfScore 74.37, instruction count 18, allocated bytes for code 72 (MethodHash=ba8c97c6) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+Flags:SetFlattenedMembersIsSorted():this (Tier1)
+; Total bytes of code 52, prolog size 8, PerfScore 71.37, instruction count 17, allocated bytes for code 52 (MethodHash=ba8c97c6) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+Flags:SetFlattenedMembersIsSorted():this (Tier1)
; ============================================================
Unwind Info:
@@ -59,7 +58,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 18 (0x00012) Actual length = 72 (0x000048)
+ Function Length : 13 (0x0000d) Actual length = 52 (0x000034)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+0 (0.00%) : 633024.dasm - XmlSerializerTests+d__9:System.Collections.Generic.IEnumerable.GetEnumerator():System.Collections.Generic.IEnumerator`1[System.Object[]]:this (Tier0)No diffs found? +0 (0.00%) : 633040.dasm - XmlSerializerTests:XmlMembersMapping_With_ChoiceIdentifier() (Tier0)No diffs found? +0 (0.00%) : 633056.dasm - XmlSerializerTests+<>c:b__231_0():System.Object:this (Tier0)No diffs found? libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch-20 (-29.41%) : 240215.dasm - System.Text.EUCJPEncoding:CleanUpEndBytes(ulong):this (FullOpts)@@ -18,14 +18,13 @@ G_M54886_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M54886_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, align
+G_M54886_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov w0, #161
- b G_M54886_IG03
- align [4 bytes for IG03]
- align [4 bytes]
- align [4 bytes]
- align [4 bytes]
- ;; size=24 bbWeight=1 PerfScore 1.50
+ align [0 bytes for IG03]
+ align [0 bytes]
+ align [0 bytes]
+ align [0 bytes]
+ ;; size=4 bbWeight=1 PerfScore 0.50
G_M54886_IG03: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, loop=IG03, byref, isz
mov w2, #0xD1FFAB1E
strh w2, [x1, w0, SXTW #2]
@@ -42,7 +41,7 @@ G_M54886_IG05: ; bbWeight=1, epilog, nogc, extend
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 68, prolog size 8, PerfScore 27.30, instruction count 17, allocated bytes for code 68 (MethodHash=d79b2999) for method System.Text.EUCJPEncoding:CleanUpEndBytes(ulong):this (FullOpts)
+; Total bytes of code 48, prolog size 8, PerfScore 24.30, instruction count 16, allocated bytes for code 48 (MethodHash=d79b2999) for method System.Text.EUCJPEncoding:CleanUpEndBytes(ulong):this (FullOpts)
; ============================================================
Unwind Info:
@@ -53,7 +52,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 17 (0x00011) Actual length = 68 (0x000044)
+ Function Length : 12 (0x0000c) Actual length = 48 (0x000030)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-20.83%) : 56196.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState:SetValue(int,int,ubyte):this (FullOpts)@@ -23,14 +23,13 @@ G_M47155_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov fp, sp
mov w4, w2
;; size=12 bbWeight=1 PerfScore 2.00
-G_M47155_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, align
+G_M47155_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
; byrRegs +[x0]
- b G_M47155_IG03
- align [4 bytes for IG03]
- align [4 bytes]
- align [4 bytes]
- align [4 bytes]
- ;; size=20 bbWeight=1 PerfScore 1.00
+ align [0 bytes for IG03]
+ align [0 bytes]
+ align [0 bytes]
+ align [0 bytes]
+ ;; size=0 bbWeight=1 PerfScore 0.00
G_M47155_IG03: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
ldr w2, [x0, #0x08]
cmp w2, w1
@@ -61,7 +60,7 @@ G_M47155_IG06: ; bbWeight=1, epilog, nogc, extend
; gcr arg pop 0
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 96, prolog size 12, PerfScore 88.10, instruction count 24, allocated bytes for code 96 (MethodHash=412047cc) for method Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState:SetValue(int,int,ubyte):this (FullOpts)
+; Total bytes of code 76, prolog size 12, PerfScore 85.10, instruction count 23, allocated bytes for code 76 (MethodHash=412047cc) for method Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState:SetValue(int,int,ubyte):this (FullOpts)
; ============================================================
Unwind Info:
@@ -72,7 +71,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 24 (0x00018) Actual length = 96 (0x000060)
+ Function Length : 19 (0x00013) Actual length = 76 (0x00004c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-20.00%) : 47543.dasm - Roslyn.Utilities.Hash:GetFNVHashCode(System.Collections.Immutable.ImmutableArray`1[ubyte]):int (FullOpts)@@ -23,7 +23,7 @@ G_M25313_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M25313_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz, align
+G_M25313_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x0]
movz w1, #0xD1FFAB1E
movk w1, #0xD1FFAB1E LSL #16
@@ -36,12 +36,11 @@ G_M25313_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
; byrRegs +[x0]
movz w4, #0xD1FFAB1E
movk w4, #0xD1FFAB1E LSL #16
- b G_M25313_IG03
- align [4 bytes for IG03]
- align [4 bytes]
- align [4 bytes]
- align [4 bytes]
- ;; size=56 bbWeight=1 PerfScore 8.50
+ align [0 bytes for IG03]
+ align [0 bytes]
+ align [0 bytes]
+ align [0 bytes]
+ ;; size=36 bbWeight=1 PerfScore 7.50
G_M25313_IG03: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, loop=IG03, byref, isz
ldrb w5, [x0, w2, UXTW #2]
eor w1, w5, w1
@@ -59,7 +58,7 @@ G_M25313_IG05: ; bbWeight=1, epilog, nogc, extend
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 100, prolog size 8, PerfScore 52.50, instruction count 25, allocated bytes for code 100 (MethodHash=a01d9d1e) for method Roslyn.Utilities.Hash:GetFNVHashCode(System.Collections.Immutable.ImmutableArray`1[ubyte]):int (FullOpts)
+; Total bytes of code 80, prolog size 8, PerfScore 49.50, instruction count 24, allocated bytes for code 80 (MethodHash=a01d9d1e) for method Roslyn.Utilities.Hash:GetFNVHashCode(System.Collections.Immutable.ImmutableArray`1[ubyte]):int (FullOpts)
; ============================================================
Unwind Info:
@@ -70,7 +69,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 25 (0x00019) Actual length = 100 (0x000064)
+ Function Length : 20 (0x00014) Actual length = 80 (0x000050)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+0 (0.00%) : 316016.dasm - SerializationTypes.SimpleCDC:.ctor():this (FullOpts)No diffs found? +0 (0.00%) : 316032.dasm - XmlSerializerTests:Xml_XmlAttributes_RemoveXmlArrayItemAttribute_ThrowsOnMissingItem() (FullOpts)No diffs found? +0 (0.00%) : 316048.dasm - XmlSerializerTests:Xml_CollectionRoot() (FullOpts)No diffs found? realworld.run.windows.arm64.checked.mch-20 (-29.41%) : 11547.dasm - SixLabors.ImageSharp.Formats.Jpeg.Components.Block8x8F:RoundInPlace():this (FullOpts)@@ -20,15 +20,14 @@ G_M13714_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M13714_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, align
+G_M13714_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
; byrRegs +[x0]
mov w1, wzr
- b G_M13714_IG03
- align [4 bytes for IG03]
- align [4 bytes]
- align [4 bytes]
- align [4 bytes]
- ;; size=24 bbWeight=1 PerfScore 1.50
+ align [0 bytes for IG03]
+ align [0 bytes]
+ align [0 bytes]
+ align [0 bytes]
+ ;; size=4 bbWeight=1 PerfScore 0.50
G_M13714_IG03: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, loop=IG03, byref, isz
ubfiz x2, x1, #2, #32
ldr s16, [x0, x2]
@@ -44,7 +43,7 @@ G_M13714_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 68, prolog size 8, PerfScore 47.80, instruction count 17, allocated bytes for code 68 (MethodHash=6b4bca6d) for method SixLabors.ImageSharp.Formats.Jpeg.Components.Block8x8F:RoundInPlace():this (FullOpts)
+; Total bytes of code 48, prolog size 8, PerfScore 44.80, instruction count 16, allocated bytes for code 48 (MethodHash=6b4bca6d) for method SixLabors.ImageSharp.Formats.Jpeg.Components.Block8x8F:RoundInPlace():this (FullOpts)
; ============================================================
Unwind Info:
@@ -55,7 +54,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 17 (0x00011) Actual length = 68 (0x000044)
+ Function Length : 12 (0x0000c) Actual length = 48 (0x000030)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-23.81%) : 11393.dasm - SixLabors.ImageSharp.Formats.Jpeg.Components.Block8x8F:EqualsToScalar(int):ubyte:this (FullOpts)@@ -23,15 +23,14 @@ G_M12272_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M12272_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, align
+G_M12272_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
; byrRegs +[x0]
mov w2, wzr
- b G_M12272_IG03
- align [4 bytes for IG03]
- align [4 bytes]
- align [4 bytes]
- align [4 bytes]
- ;; size=24 bbWeight=1 PerfScore 1.50
+ align [0 bytes for IG03]
+ align [0 bytes]
+ align [0 bytes]
+ align [0 bytes]
+ ;; size=4 bbWeight=1 PerfScore 0.50
G_M12272_IG03: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, loop=IG03, byref, isz
ldr s16, [x0, w2, SXTW #2]
fcvtzs w3, s16
@@ -57,7 +56,7 @@ G_M12272_IG07: ; bbWeight=0.50, epilog, nogc, extend
ret lr
;; size=8 bbWeight=0.50 PerfScore 1.00
-; Total bytes of code 84, prolog size 8, PerfScore 47.90, instruction count 21, allocated bytes for code 84 (MethodHash=1c93d00f) for method SixLabors.ImageSharp.Formats.Jpeg.Components.Block8x8F:EqualsToScalar(int):ubyte:this (FullOpts)
+; Total bytes of code 64, prolog size 8, PerfScore 44.90, instruction count 20, allocated bytes for code 64 (MethodHash=1c93d00f) for method SixLabors.ImageSharp.Formats.Jpeg.Components.Block8x8F:EqualsToScalar(int):ubyte:this (FullOpts)
; ============================================================
Unwind Info:
@@ -68,7 +67,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 21 (0x00015) Actual length = 84 (0x000054)
+ Function Length : 16 (0x00010) Actual length = 64 (0x000040)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-20.83%) : 22977.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState:SetValue(int,int,ubyte):this (FullOpts)@@ -23,14 +23,13 @@ G_M47155_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov fp, sp
mov w4, w2
;; size=12 bbWeight=1 PerfScore 2.00
-G_M47155_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, align
+G_M47155_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
; byrRegs +[x0]
- b G_M47155_IG03
- align [4 bytes for IG03]
- align [4 bytes]
- align [4 bytes]
- align [4 bytes]
- ;; size=20 bbWeight=1 PerfScore 1.00
+ align [0 bytes for IG03]
+ align [0 bytes]
+ align [0 bytes]
+ align [0 bytes]
+ ;; size=0 bbWeight=1 PerfScore 0.00
G_M47155_IG03: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
ldr w2, [x0, #0x08]
cmp w2, w1
@@ -61,7 +60,7 @@ G_M47155_IG06: ; bbWeight=1, epilog, nogc, extend
; gcr arg pop 0
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 96, prolog size 12, PerfScore 88.10, instruction count 24, allocated bytes for code 96 (MethodHash=412047cc) for method Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState:SetValue(int,int,ubyte):this (FullOpts)
+; Total bytes of code 76, prolog size 12, PerfScore 85.10, instruction count 23, allocated bytes for code 76 (MethodHash=412047cc) for method Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState:SetValue(int,int,ubyte):this (FullOpts)
; ============================================================
Unwind Info:
@@ -72,7 +71,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 24 (0x00018) Actual length = 96 (0x000060)
+ Function Length : 19 (0x00013) Actual length = 76 (0x00004c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+0 (0.00%) : 33200.dasm - System.Management.Automation.ComInterop.IDispatchMetaObject:BindInvokeMember(System.Dynamic.InvokeMemberBinder,System.Dynamic.DynamicMetaObject[]):System.Dynamic.DynamicMetaObject:this (FullOpts)No diffs found? +0 (0.00%) : 33216.dasm - System.Management.Automation.ComInterop.VarEnumSelector:CheckForAmbiguousMatch(System.Type,System.Collections.Generic.List`1[int]) (FullOpts)No diffs found? +0 (0.00%) : 33232.dasm - System.Runtime.InteropServices.Marshal:GetNativeVariantForObject(System.Object,long) (FullOpts)No diffs found? smoke_tests.nativeaot.windows.arm64.checked.mch-20 (-29.41%) : 21054.dasm - System.Threading.Thread:SetThreadStateBit(int):int:this (FullOpts)@@ -20,17 +20,16 @@ G_M21926_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M21926_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, align
+G_M21926_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x0]
add x0, x0, #72
; gcrRegs -[x0]
; byrRegs +[x0]
- b G_M21926_IG03
- align [4 bytes for IG03]
- align [4 bytes]
- align [4 bytes]
- align [4 bytes]
- ;; size=24 bbWeight=1 PerfScore 1.50
+ align [0 bytes for IG03]
+ align [0 bytes]
+ align [0 bytes]
+ align [0 bytes]
+ ;; size=4 bbWeight=1 PerfScore 0.50
G_M21926_IG03: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, loop=IG03, byref, isz
ldar w2, [x0]
orr w3, w2, w1
@@ -48,7 +47,7 @@ G_M21926_IG05: ; bbWeight=1, epilog, nogc, extend
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 68, prolog size 8, PerfScore 80.30, instruction count 17, allocated bytes for code 68 (MethodHash=cdfbaa59) for method System.Threading.Thread:SetThreadStateBit(int):int:this (FullOpts)
+; Total bytes of code 48, prolog size 8, PerfScore 77.30, instruction count 16, allocated bytes for code 48 (MethodHash=cdfbaa59) for method System.Threading.Thread:SetThreadStateBit(int):int:this (FullOpts)
; ============================================================
Unwind Info:
@@ -59,7 +58,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 17 (0x00011) Actual length = 68 (0x000044)
+ Function Length : 12 (0x0000c) Actual length = 48 (0x000030)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-27.78%) : 20239.dasm - System.Threading.Interlocked:Or(byref,int):int (FullOpts)@@ -20,15 +20,14 @@ G_M62437_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M62437_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, align
+G_M62437_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
; byrRegs +[x0]
ldr w2, [x0]
- b G_M62437_IG03
- align [4 bytes for IG03]
- align [4 bytes]
- align [4 bytes]
- align [4 bytes]
- ;; size=24 bbWeight=1 PerfScore 4.00
+ align [0 bytes for IG03]
+ align [0 bytes]
+ align [0 bytes]
+ align [0 bytes]
+ ;; size=4 bbWeight=1 PerfScore 3.00
G_M62437_IG03: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
orr w3, w2, w1
mov w4, w2
@@ -49,7 +48,7 @@ G_M62437_IG06: ; bbWeight=1, epilog, nogc, extend
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 72, prolog size 8, PerfScore 65.20, instruction count 18, allocated bytes for code 72 (MethodHash=77060c1a) for method System.Threading.Interlocked:Or(byref,int):int (FullOpts)
+; Total bytes of code 52, prolog size 8, PerfScore 62.20, instruction count 17, allocated bytes for code 52 (MethodHash=77060c1a) for method System.Threading.Interlocked:Or(byref,int):int (FullOpts)
; ============================================================
Unwind Info:
@@ -60,7 +59,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 18 (0x00012) Actual length = 72 (0x000048)
+ Function Length : 13 (0x0000d) Actual length = 52 (0x000034)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-4 (-20.00%) : 16057.dasm - Internal.TypeSystem.FieldForInstantiatedType:get_IsStatic():ubyte:this (FullOpts)@@ -19,18 +19,17 @@ G_M46894_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=8 bbWeight=1 PerfScore 1.50
G_M46894_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x0]
- b G_M46894_IG03
align [0 bytes for IG03]
align [0 bytes]
align [0 bytes]
align [0 bytes]
- ;; size=4 bbWeight=1 PerfScore 1.00
+ ;; size=0 bbWeight=1 PerfScore 0.00
G_M46894_IG03: ; bbWeight=8, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, loop=IG03, byref
ldr x0, [x0, #0x08]
b G_M46894_IG03
;; size=8 bbWeight=8 PerfScore 32.00
-; Total bytes of code 20, prolog size 8, PerfScore 36.50, instruction count 9, allocated bytes for code 20 (MethodHash=de3248d1) for method Internal.TypeSystem.FieldForInstantiatedType:get_IsStatic():ubyte:this (FullOpts)
+; Total bytes of code 16, prolog size 8, PerfScore 35.10, instruction count 8, allocated bytes for code 16 (MethodHash=de3248d1) for method Internal.TypeSystem.FieldForInstantiatedType:get_IsStatic():ubyte:this (FullOpts)
; ============================================================
Unwind Info:
@@ -41,7 +40,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 5 (0x00005) Actual length = 20 (0x000014)
+ Function Length : 4 (0x00004) Actual length = 16 (0x000010)
---- Epilog scopes ----
No epilogs
---- Unwind codes ----
+0 (0.00%) : 24160.dasm - System.Threading.QueueUserWorkItemCallback:Execute():this (FullOpts)No diffs found? +0 (0.00%) : 24176.dasm - Generics+TestRecursionInGenericVirtualMethods+Derived:Get[Generics+TestRecursionInGenericVirtualMethods+Buffer`1[Generics+TestRecursionInGenericVirtualMethods+Buffer`1[Generics+TestRecursionInGenericVirtualMethods+Buffer`1[Generics+TestRecursionInGenericVirtualMethods+Buffer`1[Generics+TestRecursionInGenericVirtualMethods+Buffer`1[Generics+TestRecursionInGenericVirtualMethods+Buffer`1[Generics+TestRecursionInGenericVirtualMethods+Buffer`1[System.__Canon]]]]]]]]():Generics+TestRecursionInGenericVirtualMethods+Getter`1[Generics+TestRecursionInGenericVirtualMethods+Buffer`1[Generics+TestRecursionInGenericVirtualMethods+Buffer`1[Generics+TestRecursionInGenericVirtualMethods+Buffer`1[Generics+TestRecursionInGenericVirtualMethods+Buffer`1[Generics+TestRecursionInGenericVirtualMethods+Buffer`1[Generics+TestRecursionInGenericVirtualMethods+Buffer`1[Generics+TestRecursionInGenericVirtualMethods+Buffer`1[System.__Canon]]]]]]]]:this (FullOpts)No diffs found? +0 (0.00%) : 24192.dasm - System.ThrowHelper:ThrowAggregateException(System.Collections.Generic.List`1[System.Exception]) (FullOpts)No diffs found? DetailsImprovements/regressions per collection
Context information
jit-analyze output |
cc @dotnet/jit-contrib, @jakobbotsch PTAL. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why do we end up computing the wrong amount of alignment in these cases? That seems like we've somehow lost track of the size of the instructions we generated.
Edit: I think it's just me misunderstanding the case. I think loop alignment makes a deliberate decision to not align IG03 since the loop still fits into a single 16/32 byte chunk:
*************** In emitLoopAlignAdjustments()
compJitAlignLoopAdaptive = true
compJitAlignLoopBoundary = 32
compJitAlignLoopMinBlockWeight = 3
compJitAlignLoopForJcc = false
compJitAlignLoopMaxCodeSize = 96
compJitAlignPaddingLimit = 15
Adjusting 'align' instruction in IG02 that is targeted for IG03
*************** In getLoopSize() for G_M24659_IG03
G_M24659_IG03 has 2 bytes. -- Found the back edge.
loopSize of G_M24659_IG03 = 2 bytes.
;; Skip alignment: 'Loop at G_M24659_IG03 is aligned to fit in 1 blocks of 16 chunks.'
;; Calculated padding to add 0 bytes to align G_M24659_IG03 at 16B boundary.
Adjusted alignment for G_M24659_IG03 from 15 to 0.
Adjusted size of G_M24659_IG02 from 17 to 2.
Adjusted offset of G_M24659_IG03 from 0011 to 0002
So likely there actually was no alignment problem after all, but still seems good to get rid of the extra jump here to get back to previous behavior.
So there are 2 fixes in the PR, the one that allows jump to be removed, if it is jumping to the next block that starts the loop and the other is to make jitstress happy.
We wanted to avoid executing the alignment code and hence decided to place them behind the jump, but this change would have us execute it . Below, IG05 ~ IG06 is aligned and if that loop was inside another hot loop of IG03 ~ IG07, we will execute the alignment code, right? IG03:
...
IG04:
...
- jmp IG05
align non-zero bytes
IG05:
...
IG06:
..
je IG05
IG07:
...
je IG03
This looks fine to me. |
Yes, in that case, we'll now execute the alignment padding.
It's a bit confusing, but in Under non-stress circumstances, the alignment code is always just nops, right? Are there consequences to executing it? |
While the actual execution cost for NOP is minimal, there is still cost associate during front-end stages of instruction processing, especially because it needs to still fetch those instructions, decode them and issue them. One option would be continue hiding the |
When For example, on 05bc701 (ancestor of BBJ_NONE removal commit), the following program [MethodImpl(MethodImplOptions.NoInlining)]
static void Foo(ref int r)
{
Console.WriteLine("abc");
r++;
while (true) { r += r; }
} results in ; Assembly listing for method Program:Foo(byref) (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; fully interruptible
; No PGO data
; Final local variable assignments
;
; V00 arg0 [V00,T01] ( 6, 20 ) byref -> rbx single-def
; V01 OutArgs [V01 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V02 cse0 [V02,T00] ( 3, 24 ) int -> rax "CSE - aggressive"
;
; Lcl frame size = 32
G_M7833_IG01: ;; offset=0x0000
push rbx
sub rsp, 32
mov rbx, rcx
;; size=8 bbWeight=1 PerfScore 1.50
G_M7833_IG02: ;; offset=0x0008
mov rcx, 0x24E939618A0 ; 'abc'
call [System.Console:WriteLine(System.String)]
inc dword ptr [rbx]
align [6 bytes for IG03]
;; size=24 bbWeight=1 PerfScore 6.50
G_M7833_IG03: ;; offset=0x0020
mov eax, dword ptr [rbx]
add eax, eax
mov dword ptr [rbx], eax
jmp SHORT G_M7833_IG03
;; size=8 bbWeight=8 PerfScore 42.00
; Total bytes of code 40, prolog size 8, PerfScore 54.00, instruction count 11, allocated bytes for code 40 (MethodHash=a80de166) for method Program:Foo(byref) (FullOpts)
; ============================================================ where the |
No, it was added by 52e65a5. With that commit we get G_M7833_IG01: ;; offset=0x0000
push rbx
sub rsp, 32
mov rbx, rcx
;; size=8 bbWeight=1 PerfScore 1.50
G_M7833_IG02: ;; offset=0x0008
mov rcx, 0x215D42C18A0 ; 'abc'
call [System.Console:WriteLine(System.String)]
inc dword ptr [rbx]
jmp SHORT G_M7833_IG03
align [4 bytes for IG03]
;; size=24 bbWeight=1 PerfScore 8.25
G_M7833_IG03: ;; offset=0x0020
mov eax, dword ptr [rbx]
add eax, eax
mov dword ptr [rbx], eax
jmp SHORT G_M7833_IG03
;; size=8 bbWeight=8 PerfScore 42.00
; Total bytes of code 40, prolog size 8, PerfScore 55.75, instruction count 12, allocated bytes for code 40 (MethodHash=a80de166) for method Program:Foo(byref) (FullOpts)
; ============================================================ If we do want the jump I wonder if we can just emit it as part of the alignment bytes themselves for alignment lengths >= 2 bytes. That should get us what we want (no jump in the 0/1 byte cases, and a jump otherwise, but included as part of the alignment). |
emitting alignment shouldn't add logic of emitting |
Why not? I think |
So, are you suggesting to always have a
+1 |
Is there an easy way to check the diffs between 05bc701 and this PR? If the diffs are minimal, we can merge this PR and think about what to do for |
I can run SPMI locally with loop alignment, and post the results here. Edit: Scratch that, I noticed that commit is old enough that we'll see some pretty big churn in the diffs... Maybe we can look at some cherry-picked examples, like the ones Jakob has linked? |
Right, the suggestion would be that we should either include the jump at the beginning of the blob of alignment if we expect jumping over alignment to be efficient, and otherwise we should always just be executing the up to two nops of the alignment. [align 14 bytes]
loop should be the same underlying bytes as jmp loop
[align 12 bytes]
loop: if we think that's the most efficient multi-byte nop (on x64, where such a jump is 2 bytes). Similarly on arm64, I looked at Intel and Agner Fog's guides, and neither of them explicitly talk about the option of using a jump. They just say to use as few multi-byte nops as possible. |
Looking at the diffs in the benchmarks collections above, there are plenty of examples where we now fall through into multiple (i.e. >2) bytes of alignment, some of which may be in hot loop paths. I wonder if this change will regress any benchmarks if we merge it as-is -- that might be an indicator of whether jumping over the alignment is beneficial? Though the cost of decoding the nops versus executing the jump might be too CPU-specific to figure out a general rule for including a jump. |
I would stick to that then. |
If the diffs I asked above are not significant, I would say we can merge this change because you are pretty much undoing it and keeping it the way it was before 05bc701. Short-circuiting the |
Got it, here's the disasm of the example method Jakob pasted above, using a build from main (it looks the same as 52e65a5, which removed
With these changes, we return to the behavior of 05bc701, the ancestor to
Running SPMI with a build of 05bc701 produces large and mostly irrelevant diffs due to the history gap, so it's hard to parse those results. Looking at my PR history, #94239 (
Because of this, I think most of the diffs with main I posted here are a return to the pre- |
Can you remove the |
src/coreclr/jit/compiler.cpp
Outdated
// bbHavingAlign is in a loop, and precedes a nested loop | ||
if (blockToLoop->GetLoop(bbHavingAlign) != nullptr) | ||
{ | ||
// If bbHavingAlign is a removable jump, it will be removed despite it having alignment | ||
bbHavingAlign->SetFlags(BBF_JMP_TO_NESTED_LOOP); | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think I understand what we're trying to check here, but it doesn't seem to check for any form of nestedness or relationship between the two loops.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm trying to check for examples like the one Kunal posted here, such that bbHavingAlign
is in a loop, and precedes the start of a nested loop. I'm assuming checking if bbHavingAlign
is part of a loop is sufficient?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm assuming checking if bbHavingAlign is part of a loop is sufficient?
Yes
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Well, that case should definitely be caught but blockToLoop->GetLoop(bbHavingAlign)
could potentially not be a parent loop (it might just be a block jumping backwards to a separate loop, or skipping over this loop, or exiting a previous loop into this loop). But if the worry is about affecting other loops by starting to execute alignment in them then it seems like it's orthogonal to whether or not they are nested loops. Regardless, even if we are worried about it, wouldn't the previous behavior (before BBJ_NONE
removal) have been to execute their alignment?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Regardless, even if we are worried about it, wouldn't the previous behavior (before
BBJ_NONE
removal) have been to execute their alignment?
true, there could be occurrences where we do execute align
instructions in some other loop. What we are trying to see is if we are increasing those occurrences. Once the latest diffs come out, I am happy to chat offline to discuss how to proceed with this change.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Well, that case should definitely be caught but blockToLoop->GetLoop(bbHavingAlign) could potentially not be a parent loop
I see, so we should also check that bbHavingAlign
is a jump to the next block (which is the start of the loop we're aligning), right? Though that might catch the case where we exit a loop and enter another loop...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Well, that case should definitely be caught but blockToLoop->GetLoop(bbHavingAlign) could potentially not be a parent loop
I see, so we should also check that
bbHavingAlign
is a jump to the next block (which is the start of the loop we're aligning), right?
I think the current check is fine and we aren't really interested in nested loops vs top level loops -- just whether or not we are causing alignment to be executed in some other loop, which is what you're checking.
To answer your question regardless, you could check it using the loop tree (loop->GetParent() == blockToLoop->GetLoop(bbHavingAlign)
for the immediate parent). Checking BBJ_ALWAYS
would definitely make the nestedness relationship exist, but it wouldn't be a complete check (e.g. the previous block could also be a BBJ_COND/BBJ_SWITCH
that skips the nested loops in some cases.
src/coreclr/jit/block.h
Outdated
@@ -429,6 +429,7 @@ enum BasicBlockFlags : unsigned __int64 | |||
// (TODO: Remove this quirk after refactoring Compiler::fgFindInsertPoint) | |||
BBF_OLD_LOOP_HEADER_QUIRK = MAKE_BBFLAG(42), // Block was the header ('entry') of a loop recognized by old loop finding | |||
BBF_HAS_VALUE_PROFILE = MAKE_BBFLAG(43), // Block has a node that needs a value probing | |||
BBF_JMP_TO_NESTED_LOOP = MAKE_BBFLAG(44), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please add a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I plan to remove this flag before merging; this was just a quick-and-dirty way for determining when to remove a jump in a BBJ_ALWAYS
block with alignment (to get the diffs Kunal wanted here).
src/coreclr/scripts/superpmi.py
Outdated
@@ -1971,7 +1971,7 @@ def replay_with_asm_diffs(self): | |||
|
|||
# These vars are force overridden in the SPMI runs for both the base and diff, always. | |||
replay_vars = { | |||
"DOTNET_JitAlignLoops": "0", # disable loop alignment to filter noise | |||
"DOTNET_JitAlignLoops": "1", # disable loop alignment to filter noise |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Don't check in this change
Is anything blocking this change? I think we should take it as it was when I approved it since it is just reverting back to the behavior we used to have. The other potential improvements can be investigated and made separately. |
Correctly selecting the relevant nops can be difficult and the various manuals (Intel, AMD, Agner) all touch on the differences between various nops and when they may or may not be beneficial. For example, only the 1 byte nop ( It is very common in compilers, including Clang, GCC, and MSVC; for an unconditional jump to be emitted to skip larger amounts of padding, particularly when that is going to the start of a 32-byte loop or fetch window and thus fitting in with the general branch optimization guidance the manuals also get into. |
Without this change we are inserting superfluous jumps that jump over 0 bytes of alignment; I think we should take it to go back to the previous behavior. Then we can evaluate whether we can be smarter about inserting jumps over alignment separately. As I mentioned above, I think |
I agree as I mentioned in #97011 (comment) and let's keep an eye on regressions. if any. |
This reverts commit 188f2b2.
Sounds good. @jakobbotsch @kunalspathak can I get a quick sign-off from one of you for the revert commit, please? Thanks! |
Diffs with MISSED contexts: 125 (0.01%) Overall (-22,659 bytes)
FullOpts (-22,659 bytes)
Example diffsbenchmarks.run.windows.x64.checked.mch-16 (-26.23%) : 3134.dasm - System.Tests.Perf_Double:IsNaN(double):ubyte:this (FullOpts)@@ -24,9 +24,8 @@ G_M39357_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
xor eax, eax
xor ecx, ecx
vmovsd xmm0, qword ptr [reloc @RWD00]
- jmp SHORT G_M39357_IG03
- align [15 bytes for IG03]
- ;; size=29 bbWeight=1 PerfScore 5.50
+ align [1 bytes for IG03]
+ ;; size=13 bbWeight=1 PerfScore 3.75
G_M39357_IG03: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, loop=IG03, byref, isz
xor edx, edx
vucomisd xmm1, xmm1
@@ -44,7 +43,7 @@ G_M39357_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
RWD00 dq 3FF0000000000000h ; 1
-; Total bytes of code 61, prolog size 3, PerfScore 40.50, instruction count 16, allocated bytes for code 61 (MethodHash=c11e6642) for method System.Tests.Perf_Double:IsNaN(double):ubyte:this (FullOpts)
+; Total bytes of code 45, prolog size 3, PerfScore 38.75, instruction count 15, allocated bytes for code 45 (MethodHash=c11e6642) for method System.Tests.Perf_Double:IsNaN(double):ubyte:this (FullOpts)
; ============================================================
Unwind Info:
-16 (-26.23%) : 14080.dasm - System.Tests.Perf_Single:IsNaN(float):ubyte:this (FullOpts)@@ -24,9 +24,8 @@ G_M12727_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
xor eax, eax
xor ecx, ecx
vmovss xmm0, dword ptr [reloc @RWD00]
- jmp SHORT G_M12727_IG03
- align [15 bytes for IG03]
- ;; size=29 bbWeight=1 PerfScore 5.50
+ align [1 bytes for IG03]
+ ;; size=13 bbWeight=1 PerfScore 3.75
G_M12727_IG03: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, loop=IG03, byref, isz
xor edx, edx
vucomiss xmm1, xmm1
@@ -44,7 +43,7 @@ G_M12727_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
RWD00 dd 3F800000h ; 1
-; Total bytes of code 61, prolog size 3, PerfScore 40.50, instruction count 16, allocated bytes for code 61 (MethodHash=31ffce48) for method System.Tests.Perf_Single:IsNaN(float):ubyte:this (FullOpts)
+; Total bytes of code 45, prolog size 3, PerfScore 38.75, instruction count 15, allocated bytes for code 45 (MethodHash=31ffce48) for method System.Tests.Perf_Single:IsNaN(float):ubyte:this (FullOpts)
; ============================================================
Unwind Info:
-10 (-21.74%) : 14555.dasm - System.Formats.Tar.TarHeader:g__CountDigits|115_0(int):int (FullOpts)@@ -16,11 +16,10 @@
G_M44852_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
;; size=0 bbWeight=1 PerfScore 0.00
-G_M44852_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz, align
+G_M44852_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov r8d, 1
- jmp SHORT G_M44852_IG03
- align [8 bytes for IG03]
- ;; size=16 bbWeight=1 PerfScore 2.25
+ align [0 bytes for IG03]
+ ;; size=6 bbWeight=1 PerfScore 0.25
G_M44852_IG03: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov edx, 0xD1FFAB1E
mov eax, edx
@@ -42,7 +41,7 @@ G_M44852_IG06: ; bbWeight=1, epilog, nogc, extend
ret
;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 46, prolog size 0, PerfScore 60.50, instruction count 15, allocated bytes for code 46 (MethodHash=029a50cb) for method System.Formats.Tar.TarHeader:<GenerateExtendedAttributesDataStream>g__CountDigits|115_0(int):int (FullOpts)
+; Total bytes of code 36, prolog size 0, PerfScore 58.50, instruction count 14, allocated bytes for code 36 (MethodHash=029a50cb) for method System.Formats.Tar.TarHeader:<GenerateExtendedAttributesDataStream>g__CountDigits|115_0(int):int (FullOpts)
; ============================================================
Unwind Info:
+3 (+1.83%) : 14410.dasm - System.Xml.XmlUTF8TextReader:BreakText(ubyte[],int,int):int (FullOpts)@@ -35,10 +35,10 @@ G_M64529_IG03: ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0000 {},
jae G_M64529_IG12
test byte ptr [rcx+rax+0x10], 128
je SHORT G_M64529_IG10
+ ;; NOP compensation instructions of 4 bytes.
mov eax, r8d
- jmp SHORT G_M64529_IG04
align [0 bytes for IG04]
- ;; size=30 bbWeight=0.50 PerfScore 5.25
+ ;; size=32 bbWeight=0.50 PerfScore 4.25
G_M64529_IG04: ; bbWeight=4, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, loop=IG04, byref, isz
dec r8d
test r8d, r8d
@@ -60,7 +60,7 @@ G_M64529_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
add rsp, 40
ret
;; size=5 bbWeight=0.50 PerfScore 0.62
-G_M64529_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M64529_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, gcvars, byref, isz, align
; gcrRegs +[rcx]
lea r9d, [rdx+r8]
cmp r9d, r10d
@@ -73,8 +73,8 @@ G_M64529_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
mov edx, 2
test cl, 128
je SHORT G_M64529_IG09
- align [0 bytes for IG08]
- ;; size=33 bbWeight=0.50 PerfScore 3.12
+ align [1 bytes for IG08]
+ ;; size=34 bbWeight=0.50 PerfScore 3.25
G_M64529_IG08: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, loop=IG08, byref, isz
add ecx, ecx
movzx rcx, cl
@@ -102,7 +102,7 @@ G_M64529_IG12: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 164, prolog size 4, PerfScore 52.75, instruction count 52, allocated bytes for code 168 (MethodHash=008a03ee) for method System.Xml.XmlUTF8TextReader:BreakText(ubyte[],int,int):int (FullOpts)
+; Total bytes of code 167, prolog size 4, PerfScore 51.88, instruction count 51, allocated bytes for code 167 (MethodHash=008a03ee) for method System.Xml.XmlUTF8TextReader:BreakText(ubyte[],int,int):int (FullOpts)
; ============================================================
Unwind Info:
+8 (+2.03%) : 20404.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:LazyMethodChecks():this (FullOpts)@@ -61,6 +61,7 @@ G_M360_IG03: ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, by
G_M360_IG04: ; bbWeight=0.50, gcVars=0000000000000840 {V00 V01}, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, gcvars, byref, isz
cmp byte ptr [rbp-0x10], 0
jne SHORT G_M360_IG08
+ ;; NOP compensation instructions of 4 bytes.
lea rdx, [rbp-0x10]
mov rcx, rax
; gcrRegs +[rcx]
@@ -77,15 +78,14 @@ G_M360_IG04: ; bbWeight=0.50, gcVars=0000000000000840 {V00 V01}, gcrefReg
call [<unknown method>]
; gcrRegs -[rcx rdx]
; gcr arg pop 0
- ;; size=45 bbWeight=0.50 PerfScore 5.25
+ ;; size=49 bbWeight=0.50 PerfScore 5.25
G_M360_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov rcx, gword ptr [rbp+0x10]
; gcrRegs +[rcx]
lea rdx, bword ptr [rcx+0x6C]
; byrRegs +[rdx]
- jmp SHORT G_M360_IG06
align [0 bytes for IG06]
- ;; size=10 bbWeight=0.50 PerfScore 1.75
+ ;; size=8 bbWeight=0.50 PerfScore 0.75
G_M360_IG06: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0004 {rdx}, loop=IG06, byref, isz
; gcrRegs -[rcx]
mov eax, dword ptr [rdx]
@@ -94,12 +94,13 @@ G_M360_IG06: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0004 {rdx}, loop=
or r8d, 0x2000
cmp r8d, eax
je SHORT G_M360_IG13
+ ;; NOP compensation instructions of 4 bytes.
lock
cmpxchg dword ptr [rdx], r8d
cmp eax, dword ptr [rbp-0x14]
jne SHORT G_M360_IG06
- ;; size=30 bbWeight=4 PerfScore 103.00
-G_M360_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ ;; size=34 bbWeight=4 PerfScore 103.00
+G_M360_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz, align
; byrRegs -[rdx]
mov rax, 0xD1FFAB1E ; const ptr
mov rcx, gword ptr [rax]
@@ -110,8 +111,8 @@ G_M360_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov gword ptr [rbp-0x28], rax
; GC ptr vars +{V03}
jmp SHORT G_M360_IG09
- align [0 bytes for IG11]
- ;; size=25 bbWeight=0.50 PerfScore 4.12
+ align [2 bytes for IG11]
+ ;; size=27 bbWeight=0.50 PerfScore 4.12
G_M360_IG08: ; bbWeight=0, gcVars=0000000000000800 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rax]
; GC ptr vars -{V00 V03}
@@ -265,7 +266,7 @@ G_M360_IG24: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 395, prolog size 25, PerfScore 247.75, instruction count 125, allocated bytes for code 403 (MethodHash=9b5bfe97) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:LazyMethodChecks():this (FullOpts)
+; Total bytes of code 403, prolog size 25, PerfScore 246.75, instruction count 124, allocated bytes for code 403 (MethodHash=9b5bfe97) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:LazyMethodChecks():this (FullOpts)
; ============================================================
Unwind Info:
+4 (+2.65%) : 11410.dasm - System.Linq.Lookup`2[int,int]:Resize():this (FullOpts)@@ -30,11 +30,12 @@ G_M63754_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rbx, rcx
; gcrRegs +[rbx]
;; size=15 bbWeight=1 PerfScore 6.50
-G_M63754_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M63754_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz, align
imul esi, dword ptr [rbx+0x20], 2
jo G_M63754_IG07
add esi, 1
jo SHORT G_M63754_IG07
+ ;; NOP compensation instructions of 4 bytes.
movsxd rdx, esi
mov rcx, 0xD1FFAB1E ; <unknown class>
call CORINFO_HELP_NEWARR_1_OBJ
@@ -46,9 +47,8 @@ G_M63754_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
; gcrRegs +[rbp]
mov r14, rbp
; gcrRegs +[r14]
- jmp SHORT G_M63754_IG03
- align [0 bytes for IG03]
- ;; size=45 bbWeight=1 PerfScore 13.25
+ align [2 bytes for IG03]
+ ;; size=49 bbWeight=1 PerfScore 11.50
G_M63754_IG03: ; bbWeight=8, gcrefRegs=40A8 {rbx rbp rdi r14}, byrefRegs=0000 {}, loop=IG03, byref, isz
; gcrRegs -[rax]
mov r14, gword ptr [r14+0x18]
@@ -108,7 +108,7 @@ G_M63754_IG07: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 151, prolog size 15, PerfScore 346.00, instruction count 52, allocated bytes for code 155 (MethodHash=c33806f5) for method System.Linq.Lookup`2[int,int]:Resize():this (FullOpts)
+; Total bytes of code 155, prolog size 15, PerfScore 344.25, instruction count 51, allocated bytes for code 155 (MethodHash=c33806f5) for method System.Linq.Lookup`2[int,int]:Resize():this (FullOpts)
; ============================================================
Unwind Info:
benchmarks.run_pgo.windows.x64.checked.mch-8 (-17.39%) : 87891.dasm - PerfLabTests.LowLevelPerf:StaticIntPlus():this (Tier1-OSR)@@ -25,11 +25,10 @@ G_M55626_IG02: ; bbWeight=0.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
cmp eax, ecx
jge SHORT G_M55626_IG05
;; size=10 bbWeight=0.01 PerfScore 0.03
-G_M55626_IG03: ; bbWeight=0.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz, align
+G_M55626_IG03: ; bbWeight=0.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov rdx, 0xD1FFAB1E ; static handle
- jmp SHORT G_M55626_IG04
- align [6 bytes for IG04]
- ;; size=18 bbWeight=0.01 PerfScore 0.02
+ align [0 bytes for IG04]
+ ;; size=10 bbWeight=0.01 PerfScore 0.00
G_M55626_IG04: ; bbWeight=99.99, gcrefRegs=0000 {}, byrefRegs=0000 {}, loop=IG04, byref, isz
inc dword ptr [rdx]
inc eax
@@ -42,7 +41,7 @@ G_M55626_IG05: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ret
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 46, prolog size 4, PerfScore 450.03, instruction count 14, allocated bytes for code 46 (MethodHash=ce1726b5) for method PerfLabTests.LowLevelPerf:StaticIntPlus():this (Tier1-OSR)
+; Total bytes of code 38, prolog size 4, PerfScore 450.01, instruction count 13, allocated bytes for code 38 (MethodHash=ce1726b5) for method PerfLabTests.LowLevelPerf:StaticIntPlus():this (Tier1-OSR)
; ============================================================
Unwind Info:
-12 (-4.15%) : 48065.dasm - NeuralJagged:zero_changes() (Tier1)@@ -61,9 +61,8 @@ G_M36258_IG04: ; bbWeight=8, gcrefRegs=0500 {r8 r10}, byrefRegs=0000 {},
;; size=7 bbWeight=8 PerfScore 12.00
G_M36258_IG05: ; bbWeight=7.78, gcrefRegs=0500 {r8 r10}, byrefRegs=0000 {}, byref, isz
mov r11d, eax
- jmp SHORT G_M36258_IG06
align [0 bytes for IG06]
- ;; size=5 bbWeight=7.78 PerfScore 17.50
+ ;; size=3 bbWeight=7.78 PerfScore 1.94
G_M36258_IG06: ; bbWeight=280, gcrefRegs=0500 {r8 r10}, byrefRegs=0000 {}, byref
mov rbx, r8
; gcrRegs +[rbx]
@@ -114,11 +113,10 @@ G_M36258_IG11: ; bbWeight=8, gcrefRegs=0500 {r8 r10}, byrefRegs=0000 {},
test ecx, ecx
jle SHORT G_M36258_IG15
;; size=7 bbWeight=8 PerfScore 12.00
-G_M36258_IG12: ; bbWeight=7.11, gcrefRegs=0500 {r8 r10}, byrefRegs=0000 {}, byref, isz, align
+G_M36258_IG12: ; bbWeight=7.11, gcrefRegs=0500 {r8 r10}, byrefRegs=0000 {}, byref, isz
mov r11d, eax
- jmp SHORT G_M36258_IG13
- align [8 bytes for IG13]
- ;; size=13 bbWeight=7.11 PerfScore 16.00
+ align [0 bytes for IG13]
+ ;; size=3 bbWeight=7.11 PerfScore 1.78
G_M36258_IG13: ; bbWeight=64, gcrefRegs=0500 {r8 r10}, byrefRegs=0000 {}, byref, isz
mov rbx, r8
; gcrRegs +[rbx]
@@ -163,7 +161,7 @@ G_M36258_IG17: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 289, prolog size 7, PerfScore 8532.28, instruction count 84, allocated bytes for code 289 (MethodHash=faf8725d) for method NeuralJagged:zero_changes() (Tier1)
+; Total bytes of code 277, prolog size 7, PerfScore 8502.50, instruction count 82, allocated bytes for code 277 (MethodHash=faf8725d) for method NeuralJagged:zero_changes() (Tier1)
; ============================================================
Unwind Info:
-6 (-3.68%) : 49722.dasm - Neural:check_out_error():int (Tier1)@@ -43,16 +43,15 @@ G_M22969_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
test edx, edx
jle SHORT G_M22969_IG07
;; size=42 bbWeight=1 PerfScore 11.00
-G_M22969_IG03: ; bbWeight=0.91, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz, align
+G_M22969_IG03: ; bbWeight=0.91, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
vmovsd xmm0, qword ptr [(reloc)]
vmovsd xmm1, qword ptr [(reloc)]
mov rax, 0xD1FFAB1E ; static handle
mov r8, gword ptr [rax]
; gcrRegs +[r8]
vmovsd xmm2, qword ptr [reloc @RWD00]
- jmp SHORT G_M22969_IG04
- align [4 bytes for IG04]
- ;; size=43 bbWeight=0.91 PerfScore 13.86
+ align [0 bytes for IG04]
+ ;; size=37 bbWeight=0.91 PerfScore 12.05
G_M22969_IG04: ; bbWeight=10, gcrefRegs=0100 {r8}, byrefRegs=0000 {}, byref, isz
vucomisd xmm0, xmm1
jb SHORT G_M22969_IG05
@@ -100,7 +99,7 @@ G_M22969_IG10: ; bbWeight=0, gcrefRegs=0100 {r8}, byrefRegs=0000 {}, byre
RWD00 dq 4030000000000000h ; 16
-; Total bytes of code 163, prolog size 11, PerfScore 219.61, instruction count 47, allocated bytes for code 163 (MethodHash=6198a646) for method Neural:check_out_error():int (Tier1)
+; Total bytes of code 157, prolog size 11, PerfScore 217.80, instruction count 46, allocated bytes for code 157 (MethodHash=6198a646) for method Neural:check_out_error():int (Tier1)
; ============================================================
Unwind Info:
+0 (0.00%) : 94288.dasm - System.Number:Dragon4(ulong,int,uint,ubyte,int,ubyte,System.Span`1[ubyte],byref):uint (Tier1)@@ -954,15 +954,14 @@ G_M41408_IG62: ; bbWeight=15.42, gcrefRegs=0000 {}, byrefRegs=2000 {r13},
jne SHORT G_M41408_IG68
;; NOP compensation instructions of 4 bytes.
;; size=9 bbWeight=15.42 PerfScore 19.27
-G_M41408_IG63: ; bbWeight=15.42, gcrefRegs=0000 {}, byrefRegs=2000 {r13}, byref, isz
+G_M41408_IG63: ; bbWeight=15.42, gcrefRegs=0000 {}, byrefRegs=2000 {r13}, byref, isz, align
cmp dword ptr [rsp+0xB00], 0
je G_M41408_IG149
xor ebx, ebx
mov ecx, dword ptr [rsp+0xB00]
xor r14d, r14d
- jmp SHORT G_M41408_IG64
- align [0 bytes for IG64]
- ;; size=28 bbWeight=15.42 PerfScore 100.23
+ align [2 bytes for IG64]
+ ;; size=28 bbWeight=15.42 PerfScore 73.24
G_M41408_IG64: ; bbWeight=498.62, gcrefRegs=0000 {}, byrefRegs=2000 {r13}, loop=IG64, byref, isz
lea rdx, bword ptr [rsp+0xB04]
; byrRegs +[rdx]
@@ -3076,7 +3075,7 @@ RWD00 dq 3FD34413509F79FFh ; 0.301029996
RWD08 dq 3FE6147AE147AE14h ; 0.69
-; Total bytes of code 8433, prolog size 60, PerfScore 21696.89, instruction count 1744, allocated bytes for code 8433 (MethodHash=ef215e3f) for method System.Number:Dragon4(ulong,int,uint,ubyte,int,ubyte,System.Span`1[ubyte],byref):uint (Tier1)
+; Total bytes of code 8433, prolog size 60, PerfScore 21669.91, instruction count 1743, allocated bytes for code 8433 (MethodHash=ef215e3f) for method System.Number:Dragon4(ulong,int,uint,ubyte,int,ubyte,System.Span`1[ubyte],byref):uint (Tier1)
; ============================================================
Unwind Info:
+0 (0.00%) : 95344.dasm - System.Threading.PortableThreadPool+WorkerThread:WorkerThreadStart() (Tier1-OSR)@@ -132,9 +132,8 @@ G_M43936_IG05: ; bbWeight=169.98, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs
G_M43936_IG06: ; bbWeight=120.98, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz, align
lea r13, bword ptr [rbx+0x170]
; byrRegs +[r13]
- jmp SHORT G_M43936_IG07
- align [8 bytes for IG07]
- ;; size=17 bbWeight=120.98 PerfScore 302.46
+ align [10 bytes for IG07]
+ ;; size=17 bbWeight=120.98 PerfScore 90.74
G_M43936_IG07: ; bbWeight=120.98, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=2000 {r13}, byref, isz
lea ecx, [rax-0x01]
mov dword ptr [rbp-0x3C], eax
@@ -541,7 +540,7 @@ G_M43936_IG52: ; bbWeight=0, gcVars=0000000000400040 {V32 V40}, gcrefRegs
jmp G_M43936_IG40
;; size=31 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1125, prolog size 87, PerfScore 14131.96, instruction count 240, allocated bytes for code 1125 (MethodHash=5677545f) for method System.Threading.PortableThreadPool+WorkerThread:WorkerThreadStart() (Tier1-OSR)
+; Total bytes of code 1125, prolog size 87, PerfScore 13920.24, instruction count 239, allocated bytes for code 1125 (MethodHash=5677545f) for method System.Threading.PortableThreadPool+WorkerThread:WorkerThreadStart() (Tier1-OSR)
; ============================================================
Unwind Info:
+0 (0.00%) : 96992.dasm - System.Number+BigInteger:Multiply(byref,byref,byref) (Tier1)@@ -105,9 +105,8 @@ G_M58222_IG09: ; bbWeight=1.75, gcrefRegs=0000 {}, byrefRegs=6008 {rbx r1
xor r8d, r8d
mov r10d, eax
xor r9d, r9d
- jmp SHORT G_M58222_IG10
- align [5 bytes for IG10]
- ;; size=16 bbWeight=1.75 PerfScore 4.80
+ align [7 bytes for IG10]
+ ;; size=16 bbWeight=1.75 PerfScore 1.75
G_M58222_IG10: ; bbWeight=35.99, gcrefRegs=0000 {}, byrefRegs=6008 {rbx r13 r14}, loop=IG10, byref, isz
movsxd r11, r10d
mov esi, dword ptr [rbx+4*r11+0x04]
@@ -253,7 +252,7 @@ G_M58222_IG24: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
jmp G_M58222_IG18
;; size=31 bbWeight=0 PerfScore 0.00
-; Total bytes of code 417, prolog size 25, PerfScore 611.24, instruction count 134, allocated bytes for code 417 (MethodHash=50d71c91) for method System.Number+BigInteger:Multiply(byref,byref,byref) (Tier1)
+; Total bytes of code 417, prolog size 25, PerfScore 608.18, instruction count 133, allocated bytes for code 417 (MethodHash=50d71c91) for method System.Number+BigInteger:Multiply(byref,byref,byref) (Tier1)
; ============================================================
Unwind Info:
benchmarks.run_tiered.windows.x64.checked.mch-13 (-26.53%) : 42819.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsUnmanagedCallersOnlyAttributePopulated():this (Tier1)@@ -20,12 +20,11 @@
G_M48426_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rax
;; size=1 bbWeight=1 PerfScore 1.00
-G_M48426_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref, isz, align
+G_M48426_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref, isz
; byrRegs +[rcx]
cmp byte ptr [rcx], cl
- jmp SHORT G_M48426_IG03
- align [11 bytes for IG03]
- ;; size=15 bbWeight=1 PerfScore 5.00
+ align [0 bytes for IG03]
+ ;; size=2 bbWeight=1 PerfScore 3.00
G_M48426_IG03: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref, isz
mov eax, dword ptr [rcx]
mov dword ptr [rsp+0x04], eax
@@ -46,7 +45,7 @@ G_M48426_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ret
;; size=5 bbWeight=1 PerfScore 1.25
-; Total bytes of code 49, prolog size 1, PerfScore 129.25, instruction count 16, allocated bytes for code 49 (MethodHash=9c5542d5) for method Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsUnmanagedCallersOnlyAttributePopulated():this (Tier1)
+; Total bytes of code 36, prolog size 1, PerfScore 127.25, instruction count 15, allocated bytes for code 36 (MethodHash=9c5542d5) for method Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsUnmanagedCallersOnlyAttributePopulated():this (Tier1)
; ============================================================
Unwind Info:
-8 (-17.39%) : 50649.dasm - PerfLabTests.LowLevelPerf:StaticIntPlus():this (Tier1-OSR)@@ -19,14 +19,13 @@
G_M55626_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
mov eax, dword ptr [rsp+0x3C]
;; size=4 bbWeight=1 PerfScore 2.00
-G_M55626_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz, align
+G_M55626_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov ecx, dword ptr [(reloc)]
cmp eax, ecx
jge SHORT G_M55626_IG04
mov rdx, 0xD1FFAB1E ; static handle
- jmp SHORT G_M55626_IG03
- align [6 bytes for IG03]
- ;; size=28 bbWeight=1 PerfScore 5.50
+ align [0 bytes for IG03]
+ ;; size=20 bbWeight=1 PerfScore 3.50
G_M55626_IG03: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, loop=IG03, byref, isz
inc dword ptr [rdx]
inc eax
@@ -39,7 +38,7 @@ G_M55626_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 46, prolog size 4, PerfScore 27.25, instruction count 14, allocated bytes for code 46 (MethodHash=ce1726b5) for method PerfLabTests.LowLevelPerf:StaticIntPlus():this (Tier1-OSR)
+; Total bytes of code 38, prolog size 4, PerfScore 25.25, instruction count 13, allocated bytes for code 38 (MethodHash=ce1726b5) for method PerfLabTests.LowLevelPerf:StaticIntPlus():this (Tier1-OSR)
; ============================================================
Unwind Info:
-16 (-8.70%) : 36194.dasm - Roslyn.Utilities.TextKeyedCache`1[System.__Canon]:AddSharedEntry(int,Roslyn.Utilities.TextKeyedCache`1+SharedEntryValue[System.__Canon]):this (Tier1)@@ -51,9 +51,8 @@ G_M5347_IG02: ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {},
mov ecx, r14d
mov eax, 1
mov r15d, dword ptr [rbp+0x08]
- jmp SHORT G_M5347_IG03
- align [15 bytes for IG03]
- ;; size=44 bbWeight=1 PerfScore 7.75
+ align [1 bytes for IG03]
+ ;; size=28 bbWeight=1 PerfScore 6.00
G_M5347_IG03: ; bbWeight=4, gcrefRegs=00E0 {rbp rsi rdi}, byrefRegs=0000 {}, loop=IG03, byref, isz
cmp ecx, r15d
jae SHORT G_M5347_IG08
@@ -119,7 +118,7 @@ G_M5347_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0040 {r
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 184, prolog size 20, PerfScore 62.62, instruction count 64, allocated bytes for code 184 (MethodHash=33a1eb1c) for method Roslyn.Utilities.TextKeyedCache`1[System.__Canon]:AddSharedEntry(int,Roslyn.Utilities.TextKeyedCache`1+SharedEntryValue[System.__Canon]):this (Tier1)
+; Total bytes of code 168, prolog size 20, PerfScore 60.88, instruction count 63, allocated bytes for code 168 (MethodHash=33a1eb1c) for method Roslyn.Utilities.TextKeyedCache`1[System.__Canon]:AddSharedEntry(int,Roslyn.Utilities.TextKeyedCache`1+SharedEntryValue[System.__Canon]):this (Tier1)
; ============================================================
Unwind Info:
+3 (+1.08%) : 19207.dasm - System.Text.Encodings.Web.OptimizedInboxTextEncoder:GetIndexOfFirstByteToEncodeSsse3(ulong,ulong):ulong:this (Tier1)@@ -57,9 +57,8 @@ G_M32163_IG02: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byr
G_M32163_IG03: ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz, align
mov r10, r8
and r10, -16
- jmp SHORT G_M32163_IG04
- align [3 bytes for IG04]
- ;; size=12 bbWeight=0.50 PerfScore 1.25
+ align [5 bytes for IG04]
+ ;; size=12 bbWeight=0.50 PerfScore 0.38
G_M32163_IG04: ; bbWeight=4, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, loop=IG04, byref, isz
vmovups xmm4, xmmword ptr [rdx+rax]
vpshufb xmm5, xmm3, xmm4
@@ -89,8 +88,9 @@ G_M32163_IG05: ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0000 {},
vpmovmskb r9d, xmm4
test r9b, r9b
jne SHORT G_M32163_IG12
+ ;; NOP compensation instructions of 4 bytes.
add rax, 8
- ;; size=51 bbWeight=0.50 PerfScore 6.46
+ ;; size=55 bbWeight=0.50 PerfScore 6.46
G_M32163_IG06: ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
test r8b, 4
je SHORT G_M32163_IG07
@@ -106,15 +106,14 @@ G_M32163_IG06: ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0000 {},
jne SHORT G_M32163_IG12
add rax, 4
;; size=52 bbWeight=0.50 PerfScore 6.46
-G_M32163_IG07: ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
+G_M32163_IG07: ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz, align
test r8b, 3
je SHORT G_M32163_IG11
add rcx, 24
; gcrRegs -[rcx]
; byrRegs +[rcx]
- jmp SHORT G_M32163_IG08
- align [0 bytes for IG08]
- ;; size=12 bbWeight=0.50 PerfScore 1.75
+ align [1 bytes for IG08]
+ ;; size=11 bbWeight=0.50 PerfScore 0.88
G_M32163_IG08: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref, isz
mov r9, rcx
; byrRegs +[r9]
@@ -150,7 +149,7 @@ RWD00 dq 0707070707070707h, 0707070707070707h
RWD16 dq 8040201008040201h, 0000000000000000h
-; Total bytes of code 278, prolog size 3, PerfScore 176.67, instruction count 75, allocated bytes for code 282 (MethodHash=72b1825c) for method System.Text.Encodings.Web.OptimizedInboxTextEncoder:GetIndexOfFirstByteToEncodeSsse3(ulong,ulong):ulong:this (Tier1)
+; Total bytes of code 281, prolog size 3, PerfScore 174.92, instruction count 73, allocated bytes for code 281 (MethodHash=72b1825c) for method System.Text.Encodings.Web.OptimizedInboxTextEncoder:GetIndexOfFirstByteToEncodeSsse3(ulong,ulong):ulong:this (Tier1)
; ============================================================
Unwind Info:
+11 (+1.18%) : 33631.dasm - System.SpanHelpers:IndexOfAnyValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,short,short,short,int):int (Tier1)@@ -118,9 +118,8 @@ G_M10004_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0040 {rsi},
cmp ebx, 4
jl G_M10004_IG15
movsx rcx, r14w
- jmp SHORT G_M10004_IG06
align [0 bytes for IG06]
- ;; size=17 bbWeight=0.50 PerfScore 1.88
+ ;; size=15 bbWeight=0.50 PerfScore 0.88
G_M10004_IG06: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref
add ebx, -4
lea rdx, bword ptr [rsi+2*rax]
@@ -179,19 +178,22 @@ G_M10004_IG12: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0044 {rdx rsi},
movsx r8, word ptr [rdx+0x06]
cmp r8d, ecx
je SHORT G_M10004_IG20
- ;; size=10 bbWeight=4 PerfScore 21.00
+ ;; NOP compensation instructions of 4 bytes.
+ ;; size=14 bbWeight=4 PerfScore 21.00
G_M10004_IG13: ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref, isz
; byrRegs -[rdx]
cmp r8d, r10d
je SHORT G_M10004_IG20
+ ;; NOP compensation instructions of 4 bytes.
cmp r8d, r9d
je SHORT G_M10004_IG20
+ ;; NOP compensation instructions of 4 bytes.
cmp r8d, r11d
sete r8b
movzx r8, r8b
test r8b, r8b
jne SHORT G_M10004_IG20
- ;; size=26 bbWeight=2 PerfScore 10.50
+ ;; size=34 bbWeight=2 PerfScore 10.50
G_M10004_IG14: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, loop=IG06, byref
add rax, 4
cmp ebx, 4
@@ -201,9 +203,8 @@ G_M10004_IG15: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0040 {rsi},
test ebx, ebx
jle G_M10004_IG33
movsx rcx, r14w
- jmp SHORT G_M10004_IG16
align [0 bytes for IG16]
- ;; size=14 bbWeight=0.50 PerfScore 1.75
+ ;; size=12 bbWeight=0.50 PerfScore 0.75
G_M10004_IG16: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref, isz
dec ebx
movsx r8, word ptr [rsi+2*rax]
@@ -229,11 +230,11 @@ G_M10004_IG18: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, loo
test ebx, ebx
jg SHORT G_M10004_IG16
;; size=7 bbWeight=4 PerfScore 6.00
-G_M10004_IG19: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M10004_IG19: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz, align
; byrRegs -[rsi]
jmp G_M10004_IG33
- align [0 bytes for IG25]
- ;; size=5 bbWeight=0.50 PerfScore 1.00
+ align [3 bytes for IG25]
+ ;; size=8 bbWeight=0.50 PerfScore 1.00
G_M10004_IG20: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
add eax, 3
jmp G_M10004_IG32
@@ -414,7 +415,7 @@ G_M10004_IG34: ; bbWeight=0.50, epilog, nogc, extend
RWD00 dq 0F0D0B0907050301h, 8080808080808080h, 0F0D0B0907050301h, 8080808080808080h
-; Total bytes of code 931, prolog size 54, PerfScore 370.13, instruction count 246, allocated bytes for code 943 (MethodHash=fee1d8eb) for method System.SpanHelpers:IndexOfAnyValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,short,short,short,int):int (Tier1)
+; Total bytes of code 942, prolog size 54, PerfScore 368.13, instruction count 244, allocated bytes for code 942 (MethodHash=fee1d8eb) for method System.SpanHelpers:IndexOfAnyValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,short,short,short,int):int (Tier1)
; ============================================================
Unwind Info:
+8 (+2.03%) : 42469.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:LazyMethodChecks():this (Tier1)@@ -61,6 +61,7 @@ G_M360_IG03: ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, by
G_M360_IG04: ; bbWeight=0.50, gcVars=0000000000000840 {V00 V01}, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, gcvars, byref, isz
cmp byte ptr [rbp-0x10], 0
jne SHORT G_M360_IG08
+ ;; NOP compensation instructions of 4 bytes.
lea rdx, [rbp-0x10]
mov rcx, rax
; gcrRegs +[rcx]
@@ -77,15 +78,14 @@ G_M360_IG04: ; bbWeight=0.50, gcVars=0000000000000840 {V00 V01}, gcrefReg
call [<unknown method>]
; gcrRegs -[rcx rdx]
; gcr arg pop 0
- ;; size=45 bbWeight=0.50 PerfScore 5.25
+ ;; size=49 bbWeight=0.50 PerfScore 5.25
G_M360_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov rcx, gword ptr [rbp+0x10]
; gcrRegs +[rcx]
lea rdx, bword ptr [rcx+0x6C]
; byrRegs +[rdx]
- jmp SHORT G_M360_IG06
align [0 bytes for IG06]
- ;; size=10 bbWeight=0.50 PerfScore 1.75
+ ;; size=8 bbWeight=0.50 PerfScore 0.75
G_M360_IG06: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0004 {rdx}, loop=IG06, byref, isz
; gcrRegs -[rcx]
mov eax, dword ptr [rdx]
@@ -94,12 +94,13 @@ G_M360_IG06: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0004 {rdx}, loop=
or r8d, 0x2000
cmp r8d, eax
je SHORT G_M360_IG13
+ ;; NOP compensation instructions of 4 bytes.
lock
cmpxchg dword ptr [rdx], r8d
cmp eax, dword ptr [rbp-0x14]
jne SHORT G_M360_IG06
- ;; size=30 bbWeight=4 PerfScore 103.00
-G_M360_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ ;; size=34 bbWeight=4 PerfScore 103.00
+G_M360_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz, align
; byrRegs -[rdx]
mov rax, 0xD1FFAB1E ; const ptr
mov rcx, gword ptr [rax]
@@ -110,8 +111,8 @@ G_M360_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov gword ptr [rbp-0x28], rax
; GC ptr vars +{V03}
jmp SHORT G_M360_IG09
- align [0 bytes for IG11]
- ;; size=25 bbWeight=0.50 PerfScore 4.12
+ align [2 bytes for IG11]
+ ;; size=27 bbWeight=0.50 PerfScore 4.12
G_M360_IG08: ; bbWeight=0, gcVars=0000000000000800 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rax]
; GC ptr vars -{V00 V03}
@@ -265,7 +266,7 @@ G_M360_IG24: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 395, prolog size 25, PerfScore 247.75, instruction count 125, allocated bytes for code 403 (MethodHash=9b5bfe97) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:LazyMethodChecks():this (Tier1)
+; Total bytes of code 403, prolog size 25, PerfScore 246.75, instruction count 124, allocated bytes for code 403 (MethodHash=9b5bfe97) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:LazyMethodChecks():this (Tier1)
; ============================================================
Unwind Info:
coreclr_tests.run.windows.x64.checked.mch-14 (-26.42%) : 204858.dasm - CreateSpanTest:Main():int (FullOpts)@@ -23,13 +23,12 @@
G_M40157_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
sub rsp, 40
;; size=4 bbWeight=1 PerfScore 0.25
-G_M40157_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz, align
+G_M40157_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov rax, 0xD1FFAB1E ; static handle
xor ecx, ecx
xor edx, edx
- jmp SHORT G_M40157_IG03
- align [12 bytes for IG03]
- ;; size=28 bbWeight=1 PerfScore 2.75
+ align [0 bytes for IG03]
+ ;; size=14 bbWeight=1 PerfScore 0.75
G_M40157_IG03: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0001 {rax}, loop=IG03, byref, isz
; byrRegs +[rax]
mov r8d, edx
@@ -47,7 +46,7 @@ G_M40157_IG05: ; bbWeight=1, epilog, nogc, extend
ret
;; size=5 bbWeight=1 PerfScore 1.25
-; Total bytes of code 53, prolog size 4, PerfScore 23.50, instruction count 14, allocated bytes for code 53 (MethodHash=1c9d6322) for method CreateSpanTest:Main():int (FullOpts)
+; Total bytes of code 39, prolog size 4, PerfScore 21.50, instruction count 13, allocated bytes for code 39 (MethodHash=1c9d6322) for method CreateSpanTest:Main():int (FullOpts)
; ============================================================
Unwind Info:
-23 (-19.83%) : 165886.dasm - System.Linq.Enumerable+RangeIterator:Fill(System.Span`1[int],int) (FullOpts)@@ -55,15 +55,14 @@ G_M33525_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byr
cmp ecx, 8
jl SHORT G_M33525_IG06
;; size=18 bbWeight=1 PerfScore 6.00
-G_M33525_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0101 {rax r8}, byref, isz, align
+G_M33525_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0101 {rax r8}, byref, isz
vpbroadcastd ymm0, edx
vpaddd ymm0, ymm0, ymmword ptr [reloc @RWD00]
vmovups ymm1, ymmword ptr [reloc @RWD32]
lea rdx, bword ptr [r8-0x20]
; byrRegs +[rdx]
- jmp SHORT G_M33525_IG04
- align [15 bytes for IG04]
- ;; size=43 bbWeight=0.50 PerfScore 5.25
+ align [0 bytes for IG04]
+ ;; size=26 bbWeight=0.50 PerfScore 4.25
G_M33525_IG04: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0105 {rax rdx r8}, loop=IG04, byref, isz
vmovups ymmword ptr [rax], ymm0
vpaddd ymm0, ymm0, ymm1
@@ -75,11 +74,11 @@ G_M33525_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0101 {rax r8
; byrRegs -[rdx]
vmovd edx, xmm0
;; size=4 bbWeight=0.50 PerfScore 1.00
-G_M33525_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0101 {rax r8}, byref, isz, align
+G_M33525_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0101 {rax r8}, byref, isz
cmp rax, r8
jae SHORT G_M33525_IG08
- align [6 bytes for IG07]
- ;; size=11 bbWeight=1 PerfScore 1.50
+ align [0 bytes for IG07]
+ ;; size=5 bbWeight=1 PerfScore 1.25
G_M33525_IG07: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0101 {rax r8}, loop=IG07, byref, isz
lea ecx, [rdx+0x01]
mov dword ptr [rax], edx
@@ -97,7 +96,7 @@ RWD00 dq 0000000100000000h, 0000000300000002h, 0000000500000004h, 000000070000
RWD32 dq 0000000800000008h, 0000000800000008h, 0000000800000008h, 0000000800000008h
-; Total bytes of code 116, prolog size 3, PerfScore 45.08, instruction count 30, allocated bytes for code 116 (MethodHash=e72f7d0a) for method System.Linq.Enumerable+RangeIterator:Fill(System.Span`1[int],int) (FullOpts)
+; Total bytes of code 93, prolog size 3, PerfScore 43.83, instruction count 29, allocated bytes for code 93 (MethodHash=e72f7d0a) for method System.Linq.Enumerable+RangeIterator:Fill(System.Span`1[int],int) (FullOpts)
; ============================================================
Unwind Info:
-16 (-19.75%) : 241110.dasm - Program:Bar():int (FullOpts)@@ -22,9 +22,8 @@ G_M55117_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
xor eax, eax
xor ecx, ecx
vmovsd xmm0, qword ptr [reloc @RWD00]
- jmp SHORT G_M55117_IG03
- align [15 bytes for IG03]
- ;; size=29 bbWeight=1 PerfScore 5.50
+ align [1 bytes for IG03]
+ ;; size=13 bbWeight=1 PerfScore 3.75
G_M55117_IG03: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, loop=IG03, byref, isz
vxorps xmm1, xmm1, xmm1
vcvtsi2sd xmm1, xmm1, ecx
@@ -49,7 +48,7 @@ G_M55117_IG05: ; bbWeight=1, epilog, nogc, extend
RWD00 dq 401199999999999Ah ; 4.4
-; Total bytes of code 81, prolog size 3, PerfScore 105.08, instruction count 21, allocated bytes for code 81 (MethodHash=8b7028b2) for method Program:Bar():int (FullOpts)
+; Total bytes of code 65, prolog size 3, PerfScore 103.33, instruction count 20, allocated bytes for code 65 (MethodHash=8b7028b2) for method Program:Bar():int (FullOpts)
; ============================================================
Unwind Info:
+3 (+1.83%) : 190563.dasm - System.Xml.XmlUTF8TextReader:BreakText(ubyte[],int,int):int (FullOpts)@@ -35,10 +35,10 @@ G_M64529_IG03: ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0000 {},
jae G_M64529_IG12
test byte ptr [rcx+rax+0x10], 128
je SHORT G_M64529_IG10
+ ;; NOP compensation instructions of 4 bytes.
mov eax, r8d
- jmp SHORT G_M64529_IG04
align [0 bytes for IG04]
- ;; size=30 bbWeight=0.50 PerfScore 5.25
+ ;; size=32 bbWeight=0.50 PerfScore 4.25
G_M64529_IG04: ; bbWeight=4, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, loop=IG04, byref, isz
dec r8d
test r8d, r8d
@@ -60,7 +60,7 @@ G_M64529_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
add rsp, 40
ret
;; size=5 bbWeight=0.50 PerfScore 0.62
-G_M64529_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M64529_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, gcvars, byref, isz, align
; gcrRegs +[rcx]
lea r9d, [rdx+r8]
cmp r9d, r10d
@@ -73,8 +73,8 @@ G_M64529_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
mov edx, 2
test cl, 128
je SHORT G_M64529_IG09
- align [0 bytes for IG08]
- ;; size=33 bbWeight=0.50 PerfScore 3.12
+ align [1 bytes for IG08]
+ ;; size=34 bbWeight=0.50 PerfScore 3.25
G_M64529_IG08: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, loop=IG08, byref, isz
add ecx, ecx
movzx rcx, cl
@@ -102,7 +102,7 @@ G_M64529_IG12: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 164, prolog size 4, PerfScore 52.75, instruction count 52, allocated bytes for code 168 (MethodHash=008a03ee) for method System.Xml.XmlUTF8TextReader:BreakText(ubyte[],int,int):int (FullOpts)
+; Total bytes of code 167, prolog size 4, PerfScore 51.88, instruction count 51, allocated bytes for code 167 (MethodHash=008a03ee) for method System.Xml.XmlUTF8TextReader:BreakText(ubyte[],int,int):int (FullOpts)
; ============================================================
Unwind Info:
+8 (+2.03%) : 187945.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:LazyMethodChecks():this (FullOpts)@@ -61,6 +61,7 @@ G_M360_IG03: ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, by
G_M360_IG04: ; bbWeight=0.50, gcVars=0000000000000840 {V00 V01}, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, gcvars, byref, isz
cmp byte ptr [rbp-0x10], 0
jne SHORT G_M360_IG08
+ ;; NOP compensation instructions of 4 bytes.
lea rdx, [rbp-0x10]
mov rcx, rax
; gcrRegs +[rcx]
@@ -77,15 +78,14 @@ G_M360_IG04: ; bbWeight=0.50, gcVars=0000000000000840 {V00 V01}, gcrefReg
call [<unknown method>]
; gcrRegs -[rcx rdx]
; gcr arg pop 0
- ;; size=45 bbWeight=0.50 PerfScore 5.25
+ ;; size=49 bbWeight=0.50 PerfScore 5.25
G_M360_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov rcx, gword ptr [rbp+0x10]
; gcrRegs +[rcx]
lea rdx, bword ptr [rcx+0x6C]
; byrRegs +[rdx]
- jmp SHORT G_M360_IG06
align [0 bytes for IG06]
- ;; size=10 bbWeight=0.50 PerfScore 1.75
+ ;; size=8 bbWeight=0.50 PerfScore 0.75
G_M360_IG06: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0004 {rdx}, loop=IG06, byref, isz
; gcrRegs -[rcx]
mov eax, dword ptr [rdx]
@@ -94,12 +94,13 @@ G_M360_IG06: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0004 {rdx}, loop=
or r8d, 0x2000
cmp r8d, eax
je SHORT G_M360_IG13
+ ;; NOP compensation instructions of 4 bytes.
lock
cmpxchg dword ptr [rdx], r8d
cmp eax, dword ptr [rbp-0x14]
jne SHORT G_M360_IG06
- ;; size=30 bbWeight=4 PerfScore 103.00
-G_M360_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ ;; size=34 bbWeight=4 PerfScore 103.00
+G_M360_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz, align
; byrRegs -[rdx]
mov rax, 0xD1FFAB1E ; const ptr
mov rcx, gword ptr [rax]
@@ -110,8 +111,8 @@ G_M360_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov gword ptr [rbp-0x28], rax
; GC ptr vars +{V03}
jmp SHORT G_M360_IG09
- align [0 bytes for IG11]
- ;; size=25 bbWeight=0.50 PerfScore 4.12
+ align [2 bytes for IG11]
+ ;; size=27 bbWeight=0.50 PerfScore 4.12
G_M360_IG08: ; bbWeight=0, gcVars=0000000000000800 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rax]
; GC ptr vars -{V00 V03}
@@ -265,7 +266,7 @@ G_M360_IG24: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 395, prolog size 25, PerfScore 247.75, instruction count 125, allocated bytes for code 403 (MethodHash=9b5bfe97) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:LazyMethodChecks():this (FullOpts)
+; Total bytes of code 403, prolog size 25, PerfScore 246.75, instruction count 124, allocated bytes for code 403 (MethodHash=9b5bfe97) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:LazyMethodChecks():this (FullOpts)
; ============================================================
Unwind Info:
+8 (+2.47%) : 239992.dasm - System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int (FullOpts)@@ -86,14 +86,14 @@ G_M46731_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx},
; gcrRegs -[rcx rdx]
; gcr arg pop 0
;; size=26 bbWeight=0.50 PerfScore 1.75
-G_M46731_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz, align
+G_M46731_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
xor ecx, ecx
cmp esi, 8
- jl G_M46731_IG06
+ jl SHORT G_M46731_IG06
+ ;; NOP compensation instructions of 4 bytes.
movsx rax, di
- jmp SHORT G_M46731_IG05
- align [2 bytes for IG05]
- ;; size=19 bbWeight=1 PerfScore 3.75
+ align [0 bytes for IG05]
+ ;; size=15 bbWeight=1 PerfScore 1.75
G_M46731_IG05: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, loop=IG05, byref, isz
add esi, -8
movsx rdx, word ptr [rbx+2*rcx]
@@ -143,13 +143,12 @@ G_M46731_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx},
je SHORT G_M46731_IG15
add rcx, 4
;; size=55 bbWeight=0.50 PerfScore 11.50
-G_M46731_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
+G_M46731_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz, align
test esi, esi
jle SHORT G_M46731_IG09
movsx rax, di
- jmp SHORT G_M46731_IG08
- align [0 bytes for IG08]
- ;; size=10 bbWeight=0.50 PerfScore 1.75
+ align [14 bytes for IG08]
+ ;; size=22 bbWeight=0.50 PerfScore 0.88
G_M46731_IG08: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, loop=IG08, byref, isz
dec esi
movsx rdx, word ptr [rbx+2*rcx]
@@ -209,7 +208,7 @@ G_M46731_IG19: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
ret
;; size=8 bbWeight=0.50 PerfScore 1.38
-; Total bytes of code 324, prolog size 15, PerfScore 238.75, instruction count 101, allocated bytes for code 332 (MethodHash=bc854974) for method System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int (FullOpts)
+; Total bytes of code 332, prolog size 15, PerfScore 235.88, instruction count 99, allocated bytes for code 332 (MethodHash=bc854974) for method System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int (FullOpts)
; ============================================================
Unwind Info:
libraries.pmi.windows.x64.checked.mch-16 (-30.77%) : 25649.dasm - System.SpanHelpers:Count[ubyte](byref,ubyte,int):int (FullOpts)@@ -21,7 +21,7 @@
G_M63302_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
;; size=0 bbWeight=1 PerfScore 0.00
-G_M63302_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref, isz, align
+G_M63302_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref, isz
; byrRegs +[rcx]
xor eax, eax
movsxd r8, r8d
@@ -30,9 +30,8 @@ G_M63302_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byr
cmp rcx, r8
jae SHORT G_M63302_IG06
movzx rdx, dl
- jmp SHORT G_M63302_IG03
- align [14 bytes for IG03]
- ;; size=32 bbWeight=1 PerfScore 4.25
+ align [0 bytes for IG03]
+ ;; size=16 bbWeight=1 PerfScore 2.25
G_M63302_IG03: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0102 {rcx r8}, byref, isz
movzx r10, byte ptr [rcx]
cmp edx, r10d
@@ -51,7 +50,7 @@ G_M63302_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ret
;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 52, prolog size 0, PerfScore 24.75, instruction count 16, allocated bytes for code 52 (MethodHash=248d08b9) for method System.SpanHelpers:Count[ubyte](byref,ubyte,int):int (FullOpts)
+; Total bytes of code 36, prolog size 0, PerfScore 22.75, instruction count 15, allocated bytes for code 36 (MethodHash=248d08b9) for method System.SpanHelpers:Count[ubyte](byref,ubyte,int):int (FullOpts)
; ============================================================
Unwind Info:
-13 (-26.53%) : 94085.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsObsoleteAttributePopulated():this (FullOpts)@@ -20,12 +20,11 @@
G_M39023_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rax
;; size=1 bbWeight=1 PerfScore 1.00
-G_M39023_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref, isz, align
+G_M39023_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref, isz
; byrRegs +[rcx]
cmp byte ptr [rcx], cl
- jmp SHORT G_M39023_IG03
- align [11 bytes for IG03]
- ;; size=15 bbWeight=1 PerfScore 5.00
+ align [0 bytes for IG03]
+ ;; size=2 bbWeight=1 PerfScore 3.00
G_M39023_IG03: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref, isz
mov eax, dword ptr [rcx]
mov dword ptr [rsp+0x04], eax
@@ -46,7 +45,7 @@ G_M39023_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ret
;; size=5 bbWeight=1 PerfScore 1.25
-; Total bytes of code 49, prolog size 1, PerfScore 129.25, instruction count 16, allocated bytes for code 49 (MethodHash=e0dd6790) for method Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsObsoleteAttributePopulated():this (FullOpts)
+; Total bytes of code 36, prolog size 1, PerfScore 127.25, instruction count 15, allocated bytes for code 36 (MethodHash=e0dd6790) for method Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsObsoleteAttributePopulated():this (FullOpts)
; ============================================================
Unwind Info:
-13 (-26.53%) : 94086.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsCustomAttributesPopulated():this (FullOpts)@@ -20,12 +20,11 @@
G_M34374_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rax
;; size=1 bbWeight=1 PerfScore 1.00
-G_M34374_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref, isz, align
+G_M34374_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref, isz
; byrRegs +[rcx]
cmp byte ptr [rcx], cl
- jmp SHORT G_M34374_IG03
- align [11 bytes for IG03]
- ;; size=15 bbWeight=1 PerfScore 5.00
+ align [0 bytes for IG03]
+ ;; size=2 bbWeight=1 PerfScore 3.00
G_M34374_IG03: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref, isz
mov eax, dword ptr [rcx]
mov dword ptr [rsp+0x04], eax
@@ -46,7 +45,7 @@ G_M34374_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ret
;; size=5 bbWeight=1 PerfScore 1.25
-; Total bytes of code 49, prolog size 1, PerfScore 129.25, instruction count 16, allocated bytes for code 49 (MethodHash=17f479b9) for method Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsCustomAttributesPopulated():this (FullOpts)
+; Total bytes of code 36, prolog size 1, PerfScore 127.25, instruction count 15, allocated bytes for code 36 (MethodHash=17f479b9) for method Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsCustomAttributesPopulated():this (FullOpts)
; ============================================================
Unwind Info:
+3 (+1.78%) : 59428.dasm - Microsoft.CodeAnalysis.CSharp.MethodTypeInferrer:DependsTransitivelyOn(int,int):ubyte:this (FullOpts)@@ -34,17 +34,17 @@ G_M32314_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
push rbx
sub rsp, 32
;; size=10 bbWeight=1 PerfScore 5.25
-G_M32314_IG02: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
+G_M32314_IG02: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz, align
; gcrRegs +[rcx]
xor eax, eax
mov r10, gword ptr [rcx+0x60]
; gcrRegs +[r10]
cmp dword ptr [r10+0x08], 0
jle SHORT G_M32314_IG06
+ ;; NOP compensation instructions of 4 bytes.
mov rcx, gword ptr [rcx+0x50]
- jmp SHORT G_M32314_IG03
- align [0 bytes for IG03]
- ;; size=19 bbWeight=1 PerfScore 10.25
+ align [1 bytes for IG03]
+ ;; size=22 bbWeight=1 PerfScore 8.50
G_M32314_IG03: ; bbWeight=4, gcrefRegs=0402 {rcx r10}, byrefRegs=0000 {}, byref, isz
mov r9, rcx
; gcrRegs +[r9]
@@ -121,7 +121,7 @@ G_M32314_IG10: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 169, prolog size 10, PerfScore 130.00, instruction count 66, allocated bytes for code 173 (MethodHash=4a3a81c5) for method Microsoft.CodeAnalysis.CSharp.MethodTypeInferrer:DependsTransitivelyOn(int,int):ubyte:this (FullOpts)
+; Total bytes of code 172, prolog size 10, PerfScore 128.25, instruction count 65, allocated bytes for code 172 (MethodHash=4a3a81c5) for method Microsoft.CodeAnalysis.CSharp.MethodTypeInferrer:DependsTransitivelyOn(int,int):ubyte:this (FullOpts)
; ============================================================
Unwind Info:
+3 (+1.83%) : 204119.dasm - System.Xml.XmlUTF8TextReader:BreakText(ubyte[],int,int):int (FullOpts)@@ -35,10 +35,10 @@ G_M64529_IG03: ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0000 {},
jae G_M64529_IG12
test byte ptr [rcx+rax+0x10], 128
je SHORT G_M64529_IG10
+ ;; NOP compensation instructions of 4 bytes.
mov eax, r8d
- jmp SHORT G_M64529_IG04
align [0 bytes for IG04]
- ;; size=30 bbWeight=0.50 PerfScore 5.25
+ ;; size=32 bbWeight=0.50 PerfScore 4.25
G_M64529_IG04: ; bbWeight=4, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, loop=IG04, byref, isz
dec r8d
test r8d, r8d
@@ -60,7 +60,7 @@ G_M64529_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
add rsp, 40
ret
;; size=5 bbWeight=0.50 PerfScore 0.62
-G_M64529_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M64529_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, gcvars, byref, isz, align
; gcrRegs +[rcx]
lea r9d, [rdx+r8]
cmp r9d, r10d
@@ -73,8 +73,8 @@ G_M64529_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
mov edx, 2
test cl, 128
je SHORT G_M64529_IG09
- align [0 bytes for IG08]
- ;; size=33 bbWeight=0.50 PerfScore 3.12
+ align [1 bytes for IG08]
+ ;; size=34 bbWeight=0.50 PerfScore 3.25
G_M64529_IG08: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, loop=IG08, byref, isz
add ecx, ecx
movzx rcx, cl
@@ -102,7 +102,7 @@ G_M64529_IG12: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 164, prolog size 4, PerfScore 52.75, instruction count 52, allocated bytes for code 168 (MethodHash=008a03ee) for method System.Xml.XmlUTF8TextReader:BreakText(ubyte[],int,int):int (FullOpts)
+; Total bytes of code 167, prolog size 4, PerfScore 51.88, instruction count 51, allocated bytes for code 167 (MethodHash=008a03ee) for method System.Xml.XmlUTF8TextReader:BreakText(ubyte[],int,int):int (FullOpts)
; ============================================================
Unwind Info:
+4 (+2.65%) : 281813.dasm - System.Linq.Lookup`2[ubyte,System.Nullable`1[int]]:Resize():this (FullOpts)@@ -30,11 +30,12 @@ G_M49387_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rbx, rcx
; gcrRegs +[rbx]
;; size=15 bbWeight=1 PerfScore 6.50
-G_M49387_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M49387_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz, align
imul esi, dword ptr [rbx+0x20], 2
jo G_M49387_IG07
add esi, 1
jo SHORT G_M49387_IG07
+ ;; NOP compensation instructions of 4 bytes.
movsxd rdx, esi
mov rcx, 0xD1FFAB1E ; <unknown class>
call CORINFO_HELP_NEWARR_1_OBJ
@@ -46,9 +47,8 @@ G_M49387_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
; gcrRegs +[rbp]
mov r14, rbp
; gcrRegs +[r14]
- jmp SHORT G_M49387_IG03
- align [0 bytes for IG03]
- ;; size=45 bbWeight=1 PerfScore 13.25
+ align [2 bytes for IG03]
+ ;; size=49 bbWeight=1 PerfScore 11.50
G_M49387_IG03: ; bbWeight=8, gcrefRegs=40A8 {rbx rbp rdi r14}, byrefRegs=0000 {}, loop=IG03, byref, isz
; gcrRegs -[rax]
mov r14, gword ptr [r14+0x18]
@@ -108,7 +108,7 @@ G_M49387_IG07: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 151, prolog size 15, PerfScore 346.00, instruction count 52, allocated bytes for code 155 (MethodHash=8a5d3f14) for method System.Linq.Lookup`2[ubyte,System.Nullable`1[int]]:Resize():this (FullOpts)
+; Total bytes of code 155, prolog size 15, PerfScore 344.25, instruction count 51, allocated bytes for code 155 (MethodHash=8a5d3f14) for method System.Linq.Lookup`2[ubyte,System.Nullable`1[int]]:Resize():this (FullOpts)
; ============================================================
Unwind Info:
libraries_tests.run.windows.x64.Release.mch-13 (-26.53%) : 171314.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsMemberNotNullPopulated():this (Tier1)@@ -20,12 +20,11 @@
G_M58404_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rax
;; size=1 bbWeight=1 PerfScore 1.00
-G_M58404_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref, isz, align
+G_M58404_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref, isz
; byrRegs +[rcx]
cmp byte ptr [rcx], cl
- jmp SHORT G_M58404_IG03
- align [11 bytes for IG03]
- ;; size=15 bbWeight=1 PerfScore 5.00
+ align [0 bytes for IG03]
+ ;; size=2 bbWeight=1 PerfScore 3.00
G_M58404_IG03: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref, isz
mov eax, dword ptr [rcx]
mov dword ptr [rsp+0x04], eax
@@ -46,7 +45,7 @@ G_M58404_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ret
;; size=5 bbWeight=1 PerfScore 1.25
-; Total bytes of code 49, prolog size 1, PerfScore 127.49, instruction count 16, allocated bytes for code 49 (MethodHash=bb0d1bdb) for method Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsMemberNotNullPopulated():this (Tier1)
+; Total bytes of code 36, prolog size 1, PerfScore 125.49, instruction count 15, allocated bytes for code 36 (MethodHash=bb0d1bdb) for method Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsMemberNotNullPopulated():this (Tier1)
; ============================================================
Unwind Info:
-13 (-26.53%) : 67092.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsOverriddenOrHiddenMembersPopulated():this (Tier1)@@ -20,12 +20,11 @@
G_M60464_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rax
;; size=1 bbWeight=1 PerfScore 1.00
-G_M60464_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref, isz, align
+G_M60464_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref, isz
; byrRegs +[rcx]
cmp byte ptr [rcx], cl
- jmp SHORT G_M60464_IG03
- align [11 bytes for IG03]
- ;; size=15 bbWeight=1 PerfScore 5.00
+ align [0 bytes for IG03]
+ ;; size=2 bbWeight=1 PerfScore 3.00
G_M60464_IG03: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref, isz
mov eax, dword ptr [rcx]
mov dword ptr [rsp+0x04], eax
@@ -46,7 +45,7 @@ G_M60464_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ret
;; size=5 bbWeight=1 PerfScore 1.25
-; Total bytes of code 49, prolog size 1, PerfScore 127.90, instruction count 16, allocated bytes for code 49 (MethodHash=6a9013cf) for method Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsOverriddenOrHiddenMembersPopulated():this (Tier1)
+; Total bytes of code 36, prolog size 1, PerfScore 125.90, instruction count 15, allocated bytes for code 36 (MethodHash=6a9013cf) for method Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsOverriddenOrHiddenMembersPopulated():this (Tier1)
; ============================================================
Unwind Info:
-13 (-26.53%) : 54630.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+Flags:SetFieldDefinitionsNoted():this (Tier1)@@ -20,12 +20,11 @@
G_M11850_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rax
;; size=1 bbWeight=1 PerfScore 1.00
-G_M11850_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref, isz, align
+G_M11850_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref, isz
; byrRegs +[rcx]
cmp byte ptr [rcx], cl
- jmp SHORT G_M11850_IG03
- align [11 bytes for IG03]
- ;; size=15 bbWeight=1 PerfScore 5.00
+ align [0 bytes for IG03]
+ ;; size=2 bbWeight=1 PerfScore 3.00
G_M11850_IG03: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref, isz
mov eax, dword ptr [rcx]
mov dword ptr [rsp+0x04], eax
@@ -46,7 +45,7 @@ G_M11850_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ret
;; size=5 bbWeight=1 PerfScore 1.25
-; Total bytes of code 49, prolog size 1, PerfScore 127.90, instruction count 16, allocated bytes for code 49 (MethodHash=fcced1b5) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+Flags:SetFieldDefinitionsNoted():this (Tier1)
+; Total bytes of code 36, prolog size 1, PerfScore 125.90, instruction count 15, allocated bytes for code 36 (MethodHash=fcced1b5) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+Flags:SetFieldDefinitionsNoted():this (Tier1)
; ============================================================
Unwind Info:
+4 (+2.37%) : 397877.dasm - System.Numerics.Tensors.TensorPrimitives:InvokeSpanIntoSpan[System.Runtime.InteropServices.NFloat,System.Numerics.Tensors.TensorPrimitives+ReciprocalEstimateOperator`1[System.Runtime.InteropServices.NFloat]](System.ReadOnlySpan`1[System.Runtime.InteropServices.NFloat],System.Span`1[System.Runtime.InteropServices.NFloat]) (Tier1)@@ -96,6 +96,7 @@ G_M44345_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0006 {rcx rdx},
mov ebp, dword ptr [rcx+0x08]
cmp ebp, esi
jg SHORT G_M44345_IG08
+ ;; NOP compensation instructions of 4 bytes.
cmp rdi, rbx
je SHORT G_M44345_IG04
mov ecx, 1
@@ -120,7 +121,7 @@ G_M44345_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0006 {rcx rdx},
neg rdx
cmp rdx, rcx
jae SHORT G_M44345_IG04
- ;; size=71 bbWeight=1 PerfScore 21.00
+ ;; size=75 bbWeight=1 PerfScore 21.00
G_M44345_IG03: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; byrRegs -[rbx rdi]
call [System.ThrowHelper:ThrowArgument_InputAndDestinationSpanMustNotOverlap()]
@@ -134,11 +135,10 @@ G_M44345_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi},
test rcx, rcx
je SHORT G_M44345_IG07
;; size=9 bbWeight=1 PerfScore 1.75
-G_M44345_IG05: ; bbWeight=0.98, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz
+G_M44345_IG05: ; bbWeight=0.98, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, byref, isz, align
vmovsd xmm0, qword ptr [reloc @RWD00]
- jmp SHORT G_M44345_IG06
- align [0 bytes for IG06]
- ;; size=10 bbWeight=0.98 PerfScore 4.91
+ align [2 bytes for IG06]
+ ;; size=10 bbWeight=0.98 PerfScore 3.19
G_M44345_IG06: ; bbWeight=54.93, gcrefRegs=0000 {}, byrefRegs=0088 {rbx rdi}, loop=IG06, byref, isz
vmovsd xmm1, qword ptr [rdi+8*rdx]
vdivsd xmm1, xmm0, xmm1
@@ -172,7 +172,7 @@ G_M44345_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
RWD00 dq 3FF0000000000000h ; 1
-; Total bytes of code 169, prolog size 11, PerfScore 1107.30, instruction count 58, allocated bytes for code 173 (MethodHash=a39752c6) for method System.Numerics.Tensors.TensorPrimitives:InvokeSpanIntoSpan[System.Runtime.InteropServices.NFloat,System.Numerics.Tensors.TensorPrimitives+ReciprocalEstimateOperator`1[System.Runtime.InteropServices.NFloat]](System.ReadOnlySpan`1[System.Runtime.InteropServices.NFloat],System.Span`1[System.Runtime.InteropServices.NFloat]) (Tier1)
+; Total bytes of code 173, prolog size 11, PerfScore 1105.58, instruction count 57, allocated bytes for code 173 (MethodHash=a39752c6) for method System.Numerics.Tensors.TensorPrimitives:InvokeSpanIntoSpan[System.Runtime.InteropServices.NFloat,System.Numerics.Tensors.TensorPrimitives+ReciprocalEstimateOperator`1[System.Runtime.InteropServices.NFloat]](System.ReadOnlySpan`1[System.Runtime.InteropServices.NFloat],System.Span`1[System.Runtime.InteropServices.NFloat]) (Tier1)
; ============================================================
Unwind Info:
+4 (+2.65%) : 657799.dasm - System.Linq.Lookup`2[int,int]:Resize():this (Tier1)@@ -31,11 +31,12 @@ G_M63754_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rbx, rcx
; gcrRegs +[rbx]
;; size=15 bbWeight=1 PerfScore 6.50
-G_M63754_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M63754_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz, align
imul esi, dword ptr [rbx+0x20], 2
jo G_M63754_IG07
add esi, 1
jo SHORT G_M63754_IG07
+ ;; NOP compensation instructions of 4 bytes.
movsxd rdx, esi
mov rcx, 0xD1FFAB1E ; <unknown class>
call CORINFO_HELP_NEWARR_1_OBJ
@@ -47,9 +48,8 @@ G_M63754_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
; gcrRegs +[rbp]
mov r14, rbp
; gcrRegs +[r14]
- jmp SHORT G_M63754_IG03
- align [0 bytes for IG03]
- ;; size=45 bbWeight=1 PerfScore 13.25
+ align [2 bytes for IG03]
+ ;; size=49 bbWeight=1 PerfScore 11.50
G_M63754_IG03: ; bbWeight=29, gcrefRegs=40A8 {rbx rbp rdi r14}, byrefRegs=0000 {}, loop=IG03, byref, isz
; gcrRegs -[rax]
mov r14, gword ptr [r14+0x18]
@@ -109,7 +109,7 @@ G_M63754_IG07: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 151, prolog size 15, PerfScore 1186.00, instruction count 52, allocated bytes for code 155 (MethodHash=c33806f5) for method System.Linq.Lookup`2[int,int]:Resize():this (Tier1)
+; Total bytes of code 155, prolog size 15, PerfScore 1184.25, instruction count 51, allocated bytes for code 155 (MethodHash=c33806f5) for method System.Linq.Lookup`2[int,int]:Resize():this (Tier1)
; ============================================================
Unwind Info:
+7 (+3.17%) : 536790.dasm - System.String:Create[System.__Canon](int,System.__Canon,System.Buffers.SpanAction`2[ushort,System.__Canon]):System.String (Tier1)@@ -44,11 +44,13 @@ G_M42711_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rsi, r9
; gcrRegs +[rsi]
;; size=25 bbWeight=1 PerfScore 7.25
-G_M42711_IG02: ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref, isz
+G_M42711_IG02: ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {}, byref, isz, align
test rsi, rsi
je SHORT G_M42711_IG06
+ ;; NOP compensation instructions of 4 bytes.
test ebx, ebx
- jle G_M42711_IG07
+ jle SHORT G_M42711_IG07
+ ;; NOP compensation instructions of 4 bytes.
mov ecx, ebx
call <unknown method>
; gcrRegs +[rax]
@@ -68,9 +70,8 @@ G_M42711_IG02: ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0000 {},
cmp qword ptr [rsi+0x18], rax
jne SHORT G_M42711_IG10
xor ecx, ecx
- jmp SHORT G_M42711_IG03
- align [0 bytes for IG03]
- ;; size=64 bbWeight=1 PerfScore 18.00
+ align [5 bytes for IG03]
+ ;; size=71 bbWeight=1 PerfScore 16.25
G_M42711_IG03: ; bbWeight=4100, gcrefRegs=0020 {rbp}, byrefRegs=4000 {r14}, loop=IG03, byref, isz
; gcrRegs -[rsi rdi]
mov r8d, ecx
@@ -150,7 +151,7 @@ G_M42711_IG10: ; bbWeight=0, gcrefRegs=00E0 {rbp rsi rdi}, byrefRegs=4000
jmp SHORT G_M42711_IG04
;; size=26 bbWeight=0 PerfScore 0.00
-; Total bytes of code 221, prolog size 25, PerfScore 43079.25, instruction count 77, allocated bytes for code 229 (MethodHash=1c035928) for method System.String:Create[System.__Canon](int,System.__Canon,System.Buffers.SpanAction`2[ushort,System.__Canon]):System.String (Tier1)
+; Total bytes of code 228, prolog size 25, PerfScore 43077.50, instruction count 76, allocated bytes for code 228 (MethodHash=1c035928) for method System.String:Create[System.__Canon](int,System.__Canon,System.Buffers.SpanAction`2[ushort,System.__Canon]):System.String (Tier1)
; ============================================================
Unwind Info:
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-16 (-24.24%) : 207962.dasm - System.Runtime.Serialization.ObjectToIdCache:GetPrime(int):int (FullOpts)@@ -26,12 +26,11 @@
G_M55800_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
sub rsp, 40
;; size=4 bbWeight=1 PerfScore 0.25
-G_M55800_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz, align
+G_M55800_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov rax, 0xD1FFAB1E ; static handle
xor edx, edx
- jmp SHORT G_M55800_IG03
- align [14 bytes for IG03]
- ;; size=28 bbWeight=1 PerfScore 2.50
+ align [0 bytes for IG03]
+ ;; size=12 bbWeight=1 PerfScore 0.50
G_M55800_IG03: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0001 {rax}, loop=IG03, byref, isz
; byrRegs +[rax]
mov r8d, edx
@@ -58,7 +57,7 @@ G_M55800_IG07: ; bbWeight=0.50, epilog, nogc, extend
ret
;; size=5 bbWeight=0.50 PerfScore 0.62
-; Total bytes of code 66, prolog size 4, PerfScore 24.25, instruction count 18, allocated bytes for code 66 (MethodHash=06672607) for method System.Runtime.Serialization.ObjectToIdCache:GetPrime(int):int (FullOpts)
+; Total bytes of code 50, prolog size 4, PerfScore 22.25, instruction count 17, allocated bytes for code 50 (MethodHash=06672607) for method System.Runtime.Serialization.ObjectToIdCache:GetPrime(int):int (FullOpts)
; ============================================================
Unwind Info:
-10 (-21.74%) : 123326.dasm - System.Formats.Tar.TarHeader:g__CountDigits|115_0(int):int (FullOpts)@@ -16,11 +16,10 @@
G_M44852_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
;; size=0 bbWeight=1 PerfScore 0.00
-G_M44852_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz, align
+G_M44852_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov r8d, 1
- jmp SHORT G_M44852_IG03
- align [8 bytes for IG03]
- ;; size=16 bbWeight=1 PerfScore 2.25
+ align [0 bytes for IG03]
+ ;; size=6 bbWeight=1 PerfScore 0.25
G_M44852_IG03: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov edx, 0xD1FFAB1E
mov eax, edx
@@ -42,7 +41,7 @@ G_M44852_IG06: ; bbWeight=1, epilog, nogc, extend
ret
;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 46, prolog size 0, PerfScore 60.50, instruction count 15, allocated bytes for code 46 (MethodHash=029a50cb) for method System.Formats.Tar.TarHeader:<GenerateExtendedAttributesDataStream>g__CountDigits|115_0(int):int (FullOpts)
+; Total bytes of code 36, prolog size 0, PerfScore 58.50, instruction count 14, allocated bytes for code 36 (MethodHash=029a50cb) for method System.Formats.Tar.TarHeader:<GenerateExtendedAttributesDataStream>g__CountDigits|115_0(int):int (FullOpts)
; ============================================================
Unwind Info:
-23 (-19.83%) : 19048.dasm - System.Linq.Enumerable+RangeIterator:Fill(System.Span`1[int],int) (FullOpts)@@ -55,15 +55,14 @@ G_M33525_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byr
cmp ecx, 8
jl SHORT G_M33525_IG06
;; size=18 bbWeight=1 PerfScore 6.00
-G_M33525_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0101 {rax r8}, byref, isz, align
+G_M33525_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0101 {rax r8}, byref, isz
vpbroadcastd ymm0, edx
vpaddd ymm0, ymm0, ymmword ptr [reloc @RWD00]
vmovups ymm1, ymmword ptr [reloc @RWD32]
lea rdx, bword ptr [r8-0x20]
; byrRegs +[rdx]
- jmp SHORT G_M33525_IG04
- align [15 bytes for IG04]
- ;; size=43 bbWeight=0.50 PerfScore 5.25
+ align [0 bytes for IG04]
+ ;; size=26 bbWeight=0.50 PerfScore 4.25
G_M33525_IG04: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0105 {rax rdx r8}, loop=IG04, byref, isz
vmovups ymmword ptr [rax], ymm0
vpaddd ymm0, ymm0, ymm1
@@ -75,11 +74,11 @@ G_M33525_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0101 {rax r8
; byrRegs -[rdx]
vmovd edx, xmm0
;; size=4 bbWeight=0.50 PerfScore 1.00
-G_M33525_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0101 {rax r8}, byref, isz, align
+G_M33525_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0101 {rax r8}, byref, isz
cmp rax, r8
jae SHORT G_M33525_IG08
- align [6 bytes for IG07]
- ;; size=11 bbWeight=1 PerfScore 1.50
+ align [0 bytes for IG07]
+ ;; size=5 bbWeight=1 PerfScore 1.25
G_M33525_IG07: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0101 {rax r8}, loop=IG07, byref, isz
lea ecx, [rdx+0x01]
mov dword ptr [rax], edx
@@ -97,7 +96,7 @@ RWD00 dq 0000000100000000h, 0000000300000002h, 0000000500000004h, 000000070000
RWD32 dq 0000000800000008h, 0000000800000008h, 0000000800000008h, 0000000800000008h
-; Total bytes of code 116, prolog size 3, PerfScore 45.08, instruction count 30, allocated bytes for code 116 (MethodHash=e72f7d0a) for method System.Linq.Enumerable+RangeIterator:Fill(System.Span`1[int],int) (FullOpts)
+; Total bytes of code 93, prolog size 3, PerfScore 43.83, instruction count 29, allocated bytes for code 93 (MethodHash=e72f7d0a) for method System.Linq.Enumerable+RangeIterator:Fill(System.Span`1[int],int) (FullOpts)
; ============================================================
Unwind Info:
+7 (+1.77%) : 8434.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:LazyMethodChecks():this (FullOpts)@@ -61,6 +61,7 @@ G_M360_IG03: ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, by
G_M360_IG04: ; bbWeight=0.50, gcVars=0000000000000840 {V00 V01}, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, gcvars, byref, isz
cmp byte ptr [rbp-0x10], 0
jne SHORT G_M360_IG08
+ ;; NOP compensation instructions of 4 bytes.
lea rdx, [rbp-0x10]
mov rcx, rax
; gcrRegs +[rcx]
@@ -77,15 +78,14 @@ G_M360_IG04: ; bbWeight=0.50, gcVars=0000000000000840 {V00 V01}, gcrefReg
call [<unknown method>]
; gcrRegs -[rcx rdx]
; gcr arg pop 0
- ;; size=45 bbWeight=0.50 PerfScore 5.25
+ ;; size=49 bbWeight=0.50 PerfScore 5.25
G_M360_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov rcx, gword ptr [rbp+0x10]
; gcrRegs +[rcx]
lea rdx, bword ptr [rcx+0x6C]
; byrRegs +[rdx]
- jmp SHORT G_M360_IG06
align [0 bytes for IG06]
- ;; size=10 bbWeight=0.50 PerfScore 1.75
+ ;; size=8 bbWeight=0.50 PerfScore 0.75
G_M360_IG06: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0004 {rdx}, loop=IG06, byref, isz
; gcrRegs -[rcx]
mov eax, dword ptr [rdx]
@@ -94,12 +94,13 @@ G_M360_IG06: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0004 {rdx}, loop=
or r8d, 0x2000
cmp r8d, eax
je SHORT G_M360_IG13
+ ;; NOP compensation instructions of 4 bytes.
lock
cmpxchg dword ptr [rdx], r8d
cmp eax, dword ptr [rbp-0x14]
jne SHORT G_M360_IG06
- ;; size=30 bbWeight=4 PerfScore 103.00
-G_M360_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ ;; size=34 bbWeight=4 PerfScore 103.00
+G_M360_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz, align
; byrRegs -[rdx]
mov rax, 0xD1FFAB1E ; const ptr
mov rcx, gword ptr [rax]
@@ -110,8 +111,8 @@ G_M360_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov gword ptr [rbp-0x28], rax
; GC ptr vars +{V03}
jmp SHORT G_M360_IG09
- align [0 bytes for IG11]
- ;; size=25 bbWeight=0.50 PerfScore 4.12
+ align [1 bytes for IG11]
+ ;; size=26 bbWeight=0.50 PerfScore 4.12
G_M360_IG08: ; bbWeight=0, gcVars=0000000000000800 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rax]
; GC ptr vars -{V00 V03}
@@ -265,7 +266,7 @@ G_M360_IG24: ; bbWeight=0, funclet epilog, nogc, extend
ret
;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 396, prolog size 25, PerfScore 247.75, instruction count 125, allocated bytes for code 404 (MethodHash=9b5bfe97) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:LazyMethodChecks():this (FullOpts)
+; Total bytes of code 403, prolog size 25, PerfScore 246.75, instruction count 124, allocated bytes for code 403 (MethodHash=9b5bfe97) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:LazyMethodChecks():this (FullOpts)
; ============================================================
Unwind Info:
+3 (+1.83%) : 107035.dasm - System.Xml.XmlUTF8TextReader:BreakText(ubyte[],int,int):int (FullOpts)@@ -35,10 +35,10 @@ G_M64529_IG03: ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0000 {},
jae G_M64529_IG12
test byte ptr [rcx+rax+0x10], 128
je SHORT G_M64529_IG10
+ ;; NOP compensation instructions of 4 bytes.
mov eax, r8d
- jmp SHORT G_M64529_IG04
align [0 bytes for IG04]
- ;; size=30 bbWeight=0.50 PerfScore 5.25
+ ;; size=32 bbWeight=0.50 PerfScore 4.25
G_M64529_IG04: ; bbWeight=4, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, loop=IG04, byref, isz
dec r8d
test r8d, r8d
@@ -60,7 +60,7 @@ G_M64529_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
add rsp, 40
ret
;; size=5 bbWeight=0.50 PerfScore 0.62
-G_M64529_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, gcvars, byref, isz
+G_M64529_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, gcvars, byref, isz, align
; gcrRegs +[rcx]
lea r9d, [rdx+r8]
cmp r9d, r10d
@@ -73,8 +73,8 @@ G_M64529_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
mov edx, 2
test cl, 128
je SHORT G_M64529_IG09
- align [0 bytes for IG08]
- ;; size=33 bbWeight=0.50 PerfScore 3.12
+ align [1 bytes for IG08]
+ ;; size=34 bbWeight=0.50 PerfScore 3.25
G_M64529_IG08: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, loop=IG08, byref, isz
add ecx, ecx
movzx rcx, cl
@@ -102,7 +102,7 @@ G_M64529_IG12: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 164, prolog size 4, PerfScore 52.75, instruction count 52, allocated bytes for code 168 (MethodHash=008a03ee) for method System.Xml.XmlUTF8TextReader:BreakText(ubyte[],int,int):int (FullOpts)
+; Total bytes of code 167, prolog size 4, PerfScore 51.88, instruction count 51, allocated bytes for code 167 (MethodHash=008a03ee) for method System.Xml.XmlUTF8TextReader:BreakText(ubyte[],int,int):int (FullOpts)
; ============================================================
Unwind Info:
+4 (+2.65%) : 312397.dasm - System.Linq.Lookup`2[int,int]:Resize():this (FullOpts)@@ -30,11 +30,12 @@ G_M63754_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov rbx, rcx
; gcrRegs +[rbx]
;; size=15 bbWeight=1 PerfScore 6.50
-G_M63754_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M63754_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz, align
imul esi, dword ptr [rbx+0x20], 2
jo G_M63754_IG07
add esi, 1
jo SHORT G_M63754_IG07
+ ;; NOP compensation instructions of 4 bytes.
movsxd rdx, esi
mov rcx, 0xD1FFAB1E ; <unknown class>
call CORINFO_HELP_NEWARR_1_OBJ
@@ -46,9 +47,8 @@ G_M63754_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
; gcrRegs +[rbp]
mov r14, rbp
; gcrRegs +[r14]
- jmp SHORT G_M63754_IG03
- align [0 bytes for IG03]
- ;; size=45 bbWeight=1 PerfScore 13.25
+ align [2 bytes for IG03]
+ ;; size=49 bbWeight=1 PerfScore 11.50
G_M63754_IG03: ; bbWeight=8, gcrefRegs=40A8 {rbx rbp rdi r14}, byrefRegs=0000 {}, loop=IG03, byref, isz
; gcrRegs -[rax]
mov r14, gword ptr [r14+0x18]
@@ -108,7 +108,7 @@ G_M63754_IG07: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 151, prolog size 15, PerfScore 346.00, instruction count 52, allocated bytes for code 155 (MethodHash=c33806f5) for method System.Linq.Lookup`2[int,int]:Resize():this (FullOpts)
+; Total bytes of code 155, prolog size 15, PerfScore 344.25, instruction count 51, allocated bytes for code 155 (MethodHash=c33806f5) for method System.Linq.Lookup`2[int,int]:Resize():this (FullOpts)
; ============================================================
Unwind Info:
realworld.run.windows.x64.checked.mch-13 (-22.41%) : 8719.dasm - FSharp.Compiler.CheckExpressions+TcMethodApplication@9380:Invoke(FSharp.Compiler.Infos+MethInfo):ubyte:this (FullOpts)@@ -23,7 +23,7 @@
G_M9240_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
sub rsp, 40
;; size=4 bbWeight=1 PerfScore 0.25
-G_M9240_IG02: ; bbWeight=1, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byref, isz, align
+G_M9240_IG02: ; bbWeight=1, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rdx]
mov rcx, rdx
; gcrRegs +[rcx]
@@ -33,9 +33,8 @@ G_M9240_IG02: ; bbWeight=1, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byre
; gcr arg pop 0
cmp byte ptr [rax], al
xor ecx, ecx
- jmp SHORT G_M9240_IG03
- align [11 bytes for IG03]
- ;; size=28 bbWeight=1 PerfScore 11.50
+ align [0 bytes for IG03]
+ ;; size=15 bbWeight=1 PerfScore 9.50
G_M9240_IG03: ; bbWeight=8, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, isz
mov rax, gword ptr [rax+0x08]
test rax, rax
@@ -56,7 +55,7 @@ G_M9240_IG06: ; bbWeight=1, epilog, nogc, extend
ret
;; size=5 bbWeight=1 PerfScore 1.25
-; Total bytes of code 58, prolog size 4, PerfScore 49.50, instruction count 18, allocated bytes for code 58 (MethodHash=dc83dbe7) for method FSharp.Compiler.CheckExpressions+TcMethodApplication@9380:Invoke(FSharp.Compiler.Infos+MethInfo):ubyte:this (FullOpts)
+; Total bytes of code 45, prolog size 4, PerfScore 47.50, instruction count 17, allocated bytes for code 45 (MethodHash=dc83dbe7) for method FSharp.Compiler.CheckExpressions+TcMethodApplication@9380:Invoke(FSharp.Compiler.Infos+MethInfo):ubyte:this (FullOpts)
; ============================================================
Unwind Info:
-23 (-19.83%) : 16712.dasm - System.Linq.Enumerable+RangeIterator:Fill(System.Span`1[int],int) (FullOpts)@@ -55,15 +55,14 @@ G_M33525_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byr
cmp ecx, 8
jl SHORT G_M33525_IG06
;; size=18 bbWeight=1 PerfScore 6.00
-G_M33525_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0101 {rax r8}, byref, isz, align
+G_M33525_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0101 {rax r8}, byref, isz
vpbroadcastd ymm0, edx
vpaddd ymm0, ymm0, ymmword ptr [reloc @RWD00]
vmovups ymm1, ymmword ptr [reloc @RWD32]
lea rdx, bword ptr [r8-0x20]
; byrRegs +[rdx]
- jmp SHORT G_M33525_IG04
- align [15 bytes for IG04]
- ;; size=43 bbWeight=0.50 PerfScore 5.25
+ align [0 bytes for IG04]
+ ;; size=26 bbWeight=0.50 PerfScore 4.25
G_M33525_IG04: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0105 {rax rdx r8}, loop=IG04, byref, isz
vmovups ymmword ptr [rax], ymm0
vpaddd ymm0, ymm0, ymm1
@@ -75,11 +74,11 @@ G_M33525_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0101 {rax r8
; byrRegs -[rdx]
vmovd edx, xmm0
;; size=4 bbWeight=0.50 PerfScore 1.00
-G_M33525_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0101 {rax r8}, byref, isz, align
+G_M33525_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0101 {rax r8}, byref, isz
cmp rax, r8
jae SHORT G_M33525_IG08
- align [6 bytes for IG07]
- ;; size=11 bbWeight=1 PerfScore 1.50
+ align [0 bytes for IG07]
+ ;; size=5 bbWeight=1 PerfScore 1.25
G_M33525_IG07: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0101 {rax r8}, loop=IG07, byref, isz
lea ecx, [rdx+0x01]
mov dword ptr [rax], edx
@@ -97,7 +96,7 @@ RWD00 dq 0000000100000000h, 0000000300000002h, 0000000500000004h, 000000070000
RWD32 dq 0000000800000008h, 0000000800000008h, 0000000800000008h, 0000000800000008h
-; Total bytes of code 116, prolog size 3, PerfScore 45.08, instruction count 30, allocated bytes for code 116 (MethodHash=e72f7d0a) for method System.Linq.Enumerable+RangeIterator:Fill(System.Span`1[int],int) (FullOpts)
+; Total bytes of code 93, prolog size 3, PerfScore 43.83, instruction count 29, allocated bytes for code 93 (MethodHash=e72f7d0a) for method System.Linq.Enumerable+RangeIterator:Fill(System.Span`1[int],int) (FullOpts)
; ============================================================
Unwind Info:
-16 (-16.84%) : 23504.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:LazyAsyncMethodChecks(System.Threading.CancellationToken):this (FullOpts)@@ -37,9 +37,8 @@ G_M29193_IG02: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byr
; byrRegs +[rcx]
mov rdx, rcx
; byrRegs +[rdx]
- jmp SHORT G_M29193_IG03
- align [4 bytes for IG03]
- ;; size=15 bbWeight=1 PerfScore 5.50
+ align [6 bytes for IG03]
+ ;; size=15 bbWeight=1 PerfScore 3.75
G_M29193_IG03: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0006 {rcx rdx}, byref, isz
mov eax, dword ptr [rdx]
mov dword ptr [rsp+0x04], eax
@@ -54,11 +53,10 @@ G_M29193_IG04: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0006 {rcx rdx},
cmp eax, dword ptr [rsp+0x04]
jne SHORT G_M29193_IG03
;; size=11 bbWeight=4 PerfScore 84.00
-G_M29193_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref, isz, align
+G_M29193_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref, isz
; byrRegs -[rdx]
- jmp SHORT G_M29193_IG06
- align [14 bytes for IG06]
- ;; size=16 bbWeight=1 PerfScore 2.00
+ align [0 bytes for IG06]
+ ;; size=0 bbWeight=1 PerfScore 0.00
G_M29193_IG06: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref, isz
mov eax, dword ptr [rcx]
mov dword ptr [rsp], eax
@@ -79,7 +77,7 @@ G_M29193_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ret
;; size=5 bbWeight=1 PerfScore 1.25
-; Total bytes of code 95, prolog size 1, PerfScore 253.75, instruction count 30, allocated bytes for code 95 (MethodHash=3f218df6) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:LazyAsyncMethodChecks(System.Threading.CancellationToken):this (FullOpts)
+; Total bytes of code 79, prolog size 1, PerfScore 250.00, instruction count 28, allocated bytes for code 79 (MethodHash=3f218df6) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:LazyAsyncMethodChecks(System.Threading.CancellationToken):this (FullOpts)
; ============================================================
Unwind Info:
+3 (+1.26%) : 1904.dasm - System.SpanHelpers:LastIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int (FullOpts)@@ -73,7 +73,8 @@ G_M21910_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx},
G_M21910_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
cmp esi, 8
jge SHORT G_M21910_IG14
- ;; size=5 bbWeight=1 PerfScore 1.25
+ ;; NOP compensation instructions of 4 bytes.
+ ;; size=9 bbWeight=1 PerfScore 1.25
G_M21910_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
movsxd rax, esi
dec rax
@@ -95,13 +96,12 @@ G_M21910_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx},
je SHORT G_M21910_IG10
add rax, -4
;; size=65 bbWeight=0.50 PerfScore 11.75
-G_M21910_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
+G_M21910_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz, align
test esi, esi
jle SHORT G_M21910_IG08
movsx r10, di
- jmp SHORT G_M21910_IG07
- align [0 bytes for IG07]
- ;; size=10 bbWeight=0.50 PerfScore 1.75
+ align [1 bytes for IG07]
+ ;; size=9 bbWeight=0.50 PerfScore 0.88
G_M21910_IG07: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, loop=IG07, byref, isz
dec esi
movsx rdx, word ptr [rbx+2*rax]
@@ -180,7 +180,7 @@ G_M21910_IG18: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
ret
;; size=8 bbWeight=0.50 PerfScore 1.38
-; Total bytes of code 238, prolog size 15, PerfScore 62.38, instruction count 83, allocated bytes for code 242 (MethodHash=9eddaa69) for method System.SpanHelpers:LastIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int (FullOpts)
+; Total bytes of code 241, prolog size 15, PerfScore 61.50, instruction count 82, allocated bytes for code 241 (MethodHash=9eddaa69) for method System.SpanHelpers:LastIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int (FullOpts)
; ============================================================
Unwind Info:
+3 (+1.78%) : 26231.dasm - Microsoft.CodeAnalysis.CSharp.MethodTypeInferrer:DependsTransitivelyOn(int,int):ubyte:this (FullOpts)@@ -34,17 +34,17 @@ G_M32314_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
push rbx
sub rsp, 32
;; size=10 bbWeight=1 PerfScore 5.25
-G_M32314_IG02: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
+G_M32314_IG02: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz, align
; gcrRegs +[rcx]
xor eax, eax
mov r10, gword ptr [rcx+0x60]
; gcrRegs +[r10]
cmp dword ptr [r10+0x08], 0
jle SHORT G_M32314_IG06
+ ;; NOP compensation instructions of 4 bytes.
mov rcx, gword ptr [rcx+0x50]
- jmp SHORT G_M32314_IG03
- align [0 bytes for IG03]
- ;; size=19 bbWeight=1 PerfScore 10.25
+ align [1 bytes for IG03]
+ ;; size=22 bbWeight=1 PerfScore 8.50
G_M32314_IG03: ; bbWeight=4, gcrefRegs=0402 {rcx r10}, byrefRegs=0000 {}, byref, isz
mov r9, rcx
; gcrRegs +[r9]
@@ -121,7 +121,7 @@ G_M32314_IG10: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 169, prolog size 10, PerfScore 130.00, instruction count 66, allocated bytes for code 173 (MethodHash=4a3a81c5) for method Microsoft.CodeAnalysis.CSharp.MethodTypeInferrer:DependsTransitivelyOn(int,int):ubyte:this (FullOpts)
+; Total bytes of code 172, prolog size 10, PerfScore 128.25, instruction count 65, allocated bytes for code 172 (MethodHash=4a3a81c5) for method Microsoft.CodeAnalysis.CSharp.MethodTypeInferrer:DependsTransitivelyOn(int,int):ubyte:this (FullOpts)
; ============================================================
Unwind Info:
+3 (+2.04%) : 17215.dasm - Microsoft.ML.Transforms.MinMaxSngAggregator:Finish():this (FullOpts)@@ -32,7 +32,7 @@ G_M10231_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
sub rsp, 40
vzeroupper
;; size=9 bbWeight=1 PerfScore 3.25
-G_M10231_IG02: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
+G_M10231_IG02: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz, align
; gcrRegs +[rcx]
mov rax, gword ptr [rcx+0x08]
; gcrRegs +[rax]
@@ -40,11 +40,11 @@ G_M10231_IG02: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byr
xor r8d, r8d
test edx, edx
jle SHORT G_M10231_IG07
+ ;; NOP compensation instructions of 4 bytes.
mov r10, gword ptr [rcx+0x18]
; gcrRegs +[r10]
- jmp SHORT G_M10231_IG03
- align [0 bytes for IG03]
- ;; size=20 bbWeight=1 PerfScore 9.50
+ align [1 bytes for IG03]
+ ;; size=23 bbWeight=1 PerfScore 7.75
G_M10231_IG03: ; bbWeight=4, gcrefRegs=0403 {rax rcx r10}, byrefRegs=0000 {}, byref, isz
mov r9, r10
; gcrRegs +[r9]
@@ -105,7 +105,7 @@ G_M10231_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 147, prolog size 9, PerfScore 113.83, instruction count 49, allocated bytes for code 151 (MethodHash=3014d808) for method Microsoft.ML.Transforms.MinMaxSngAggregator:Finish():this (FullOpts)
+; Total bytes of code 150, prolog size 9, PerfScore 112.08, instruction count 48, allocated bytes for code 150 (MethodHash=3014d808) for method Microsoft.ML.Transforms.MinMaxSngAggregator:Finish():this (FullOpts)
; ============================================================
Unwind Info:
DetailsImprovements/regressions per collection
Context information
jit-analyze output |
Diffs with MISSED contexts: 365 (0.02%) Overall (-66,776 bytes)
MinOpts (+0 bytes)
FullOpts (-66,776 bytes)
Example diffsbenchmarks.run.windows.arm64.checked.mch-20 (-29.41%) : 22870.dasm - StoreBlock.LocalAddress:InitBlockAllOnes8():this (FullOpts)@@ -19,15 +19,14 @@ G_M58755_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x20]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M58755_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, align
+G_M58755_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x0]
mov w1, wzr
- b G_M58755_IG03
- align [4 bytes for IG03]
- align [4 bytes]
- align [4 bytes]
- align [4 bytes]
- ;; size=24 bbWeight=1 PerfScore 1.50
+ align [0 bytes for IG03]
+ align [0 bytes]
+ align [0 bytes]
+ align [0 bytes]
+ ;; size=4 bbWeight=1 PerfScore 0.50
G_M58755_IG03: ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, loop=IG03, byref, isz
movn x2, #0
str x2, [fp, #0x18] // [V01 loc0]
@@ -44,7 +43,7 @@ G_M58755_IG05: ; bbWeight=1, epilog, nogc, extend
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 68, prolog size 8, PerfScore 22.00, instruction count 17, allocated bytes for code 68 (MethodHash=f87c1a7c) for method StoreBlock.LocalAddress:InitBlockAllOnes8():this (FullOpts)
+; Total bytes of code 48, prolog size 8, PerfScore 21.00, instruction count 16, allocated bytes for code 48 (MethodHash=f87c1a7c) for method StoreBlock.LocalAddress:InitBlockAllOnes8():this (FullOpts)
; ============================================================
Unwind Info:
@@ -55,7 +54,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 17 (0x00011) Actual length = 68 (0x000044)
+ Function Length : 12 (0x0000c) Actual length = 48 (0x000030)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-29.41%) : 20183.dasm - StoreBlock.LocalAddress:InitBlockAllOnes16():this (FullOpts)@@ -19,15 +19,14 @@ G_M63388_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x20]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M63388_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, align
+G_M63388_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x0]
mov w1, wzr
- b G_M63388_IG03
- align [4 bytes for IG03]
- align [4 bytes]
- align [4 bytes]
- align [4 bytes]
- ;; size=24 bbWeight=1 PerfScore 1.50
+ align [0 bytes for IG03]
+ align [0 bytes]
+ align [0 bytes]
+ align [0 bytes]
+ ;; size=4 bbWeight=1 PerfScore 0.50
G_M63388_IG03: ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, loop=IG03, byref, isz
movn x2, #0
stp x2, x2, [fp, #0x10]
@@ -44,7 +43,7 @@ G_M63388_IG05: ; bbWeight=1, epilog, nogc, extend
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 68, prolog size 8, PerfScore 22.00, instruction count 17, allocated bytes for code 68 (MethodHash=36ec0863) for method StoreBlock.LocalAddress:InitBlockAllOnes16():this (FullOpts)
+; Total bytes of code 48, prolog size 8, PerfScore 21.00, instruction count 16, allocated bytes for code 48 (MethodHash=36ec0863) for method StoreBlock.LocalAddress:InitBlockAllOnes16():this (FullOpts)
; ============================================================
Unwind Info:
@@ -55,7 +54,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 17 (0x00011) Actual length = 68 (0x000044)
+ Function Length : 12 (0x0000c) Actual length = 48 (0x000030)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-29.41%) : 23385.dasm - StoreBlock.LocalAddress:InitBlockAllZeros32():this (FullOpts)@@ -19,15 +19,14 @@ G_M6844_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x30]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M6844_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, align
+G_M6844_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x0]
mov w1, wzr
- b G_M6844_IG03
- align [4 bytes for IG03]
- align [4 bytes]
- align [4 bytes]
- align [4 bytes]
- ;; size=24 bbWeight=1 PerfScore 1.50
+ align [0 bytes for IG03]
+ align [0 bytes]
+ align [0 bytes]
+ align [0 bytes]
+ ;; size=4 bbWeight=1 PerfScore 0.50
G_M6844_IG03: ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, loop=IG03, byref, isz
stp xzr, xzr, [fp, #0x10]
stp xzr, xzr, [fp, #0x20]
@@ -44,7 +43,7 @@ G_M6844_IG05: ; bbWeight=1, epilog, nogc, extend
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 68, prolog size 8, PerfScore 24.00, instruction count 17, allocated bytes for code 68 (MethodHash=7b31e543) for method StoreBlock.LocalAddress:InitBlockAllZeros32():this (FullOpts)
+; Total bytes of code 48, prolog size 8, PerfScore 23.00, instruction count 16, allocated bytes for code 48 (MethodHash=7b31e543) for method StoreBlock.LocalAddress:InitBlockAllZeros32():this (FullOpts)
; ============================================================
Unwind Info:
@@ -55,7 +54,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 17 (0x00011) Actual length = 68 (0x000044)
+ Function Length : 12 (0x0000c) Actual length = 48 (0x000030)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+0 (0.00%) : 24400.dasm - System.MathBenchmarks.Single:Log10P1Test() (FullOpts)No diffs found? +0 (0.00%) : 24416.dasm - Algorithms.ScalarFloatRenderer:RenderSingleThreadedNoADT(float,float,float,float,float):this (FullOpts)No diffs found? +0 (0.00%) : 24432.dasm - System.Reflection.Invoke:StaticMethod4_int_string_struct_class():this (FullOpts)No diffs found? benchmarks.run_pgo.windows.arm64.checked.mch-24 (-8.45%) : 26194.dasm - System.Enum+EnumInfo`1[uint]:.ctor(ubyte,uint[],System.String[]):this (Tier1)@@ -67,12 +67,11 @@ G_M39553_IG02: ; bbWeight=1, gcrefRegs=180008 {x3 x19 x20}, byrefRegs=000
G_M39553_IG03: ; bbWeight=0.81, gcrefRegs=180008 {x3 x19 x20}, byrefRegs=0000 {}, byref, isz
add x1, x20, #16
; byrRegs +[x1]
- b G_M39553_IG04
align [0 bytes for IG04]
align [0 bytes]
align [0 bytes]
align [0 bytes]
- ;; size=8 bbWeight=0.81 PerfScore 1.21
+ ;; size=4 bbWeight=0.81 PerfScore 0.40
G_M39553_IG04: ; bbWeight=4.17, gcrefRegs=180008 {x3 x19 x20}, byrefRegs=0002 {x1}, byref, isz
sub w0, w2, #1
cmp w0, w21
@@ -98,15 +97,14 @@ G_M39553_IG06: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
cmp w21, #0
ble G_M39553_IG09
;; size=12 bbWeight=1 PerfScore 2.00
-G_M39553_IG07: ; bbWeight=0.84, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, align
+G_M39553_IG07: ; bbWeight=0.84, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
add x1, x20, #16
; byrRegs +[x1]
- b G_M39553_IG08
- align [4 bytes for IG08]
- align [4 bytes]
- align [4 bytes]
- align [4 bytes]
- ;; size=24 bbWeight=0.84 PerfScore 1.26
+ align [0 bytes for IG08]
+ align [0 bytes]
+ align [0 bytes]
+ align [0 bytes]
+ ;; size=4 bbWeight=0.84 PerfScore 0.42
G_M39553_IG08: ; bbWeight=5.17, gcrefRegs=80000 {x19}, byrefRegs=0002 {x1}, loop=IG08, byref, isz
; gcrRegs -[x20]
ldr w4, [x1, w0, UXTW #2]
@@ -167,7 +165,7 @@ G_M39553_IG14: ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
b G_M39553_IG10
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 284, prolog size 24, PerfScore 117.38, instruction count 75, allocated bytes for code 284 (MethodHash=267b657e) for method System.Enum+EnumInfo`1[uint]:.ctor(ubyte,uint[],System.String[]):this (Tier1)
+; Total bytes of code 260, prolog size 24, PerfScore 115.74, instruction count 73, allocated bytes for code 260 (MethodHash=267b657e) for method System.Enum+EnumInfo`1[uint]:.ctor(ubyte,uint[],System.String[]):this (Tier1)
; ============================================================
Unwind Info:
@@ -178,7 +176,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 71 (0x00047) Actual length = 284 (0x00011c)
+ Function Length : 65 (0x00041) Actual length = 260 (0x000104)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-24 (-8.45%) : 46164.dasm - System.Enum+EnumInfo`1[uint]:.ctor(ubyte,uint[],System.String[]):this (Tier1)@@ -67,12 +67,11 @@ G_M39553_IG02: ; bbWeight=1, gcrefRegs=180008 {x3 x19 x20}, byrefRegs=000
G_M39553_IG03: ; bbWeight=0.57, gcrefRegs=180008 {x3 x19 x20}, byrefRegs=0000 {}, byref, isz
add x1, x20, #16
; byrRegs +[x1]
- b G_M39553_IG04
align [0 bytes for IG04]
align [0 bytes]
align [0 bytes]
align [0 bytes]
- ;; size=8 bbWeight=0.57 PerfScore 0.86
+ ;; size=4 bbWeight=0.57 PerfScore 0.29
G_M39553_IG04: ; bbWeight=3.63, gcrefRegs=180008 {x3 x19 x20}, byrefRegs=0002 {x1}, byref, isz
sub w0, w2, #1
cmp w0, w21
@@ -98,15 +97,14 @@ G_M39553_IG06: ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
cmp w21, #0
ble G_M39553_IG10
;; size=12 bbWeight=1 PerfScore 2.00
-G_M39553_IG07: ; bbWeight=0.57, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, align
+G_M39553_IG07: ; bbWeight=0.57, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
add x1, x20, #16
; byrRegs +[x1]
- b G_M39553_IG08
- align [4 bytes for IG08]
- align [4 bytes]
- align [4 bytes]
- align [4 bytes]
- ;; size=24 bbWeight=0.57 PerfScore 0.86
+ align [0 bytes for IG08]
+ align [0 bytes]
+ align [0 bytes]
+ align [0 bytes]
+ ;; size=4 bbWeight=0.57 PerfScore 0.29
G_M39553_IG08: ; bbWeight=4.38, gcrefRegs=80000 {x19}, byrefRegs=0002 {x1}, byref, isz
; gcrRegs -[x20]
ldr w4, [x1, w0, UXTW #2]
@@ -168,7 +166,7 @@ G_M39553_IG15: ; bbWeight=0, gcrefRegs=180008 {x3 x19 x20}, byrefRegs=000
b G_M39553_IG06
;; size=56 bbWeight=0 PerfScore 0.00
-; Total bytes of code 284, prolog size 24, PerfScore 107.90, instruction count 75, allocated bytes for code 284 (MethodHash=267b657e) for method System.Enum+EnumInfo`1[uint]:.ctor(ubyte,uint[],System.String[]):this (Tier1)
+; Total bytes of code 260, prolog size 24, PerfScore 106.76, instruction count 73, allocated bytes for code 260 (MethodHash=267b657e) for method System.Enum+EnumInfo`1[uint]:.ctor(ubyte,uint[],System.String[]):this (Tier1)
; ============================================================
Unwind Info:
@@ -179,7 +177,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 71 (0x00047) Actual length = 284 (0x00011c)
+ Function Length : 65 (0x00041) Actual length = 260 (0x000104)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-24 (-7.06%) : 69323.dasm - Roslyn.Utilities.StringTable:AddSharedUtf8(System.ReadOnlySpan`1[ubyte]):System.String (Tier1)@@ -55,15 +55,14 @@ G_M27107_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byre
cmp w2, #0
ble G_M27107_IG05
;; size=24 bbWeight=1 PerfScore 3.50
-G_M27107_IG03: ; bbWeight=0.94, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, align
+G_M27107_IG03: ; bbWeight=0.94, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
movz w5, #0xD1FFAB1E
movk w5, #0xD1FFAB1E LSL #16
- b G_M27107_IG04
- align [4 bytes for IG04]
- align [4 bytes]
- align [4 bytes]
- align [4 bytes]
- ;; size=28 bbWeight=0.94 PerfScore 1.89
+ align [0 bytes for IG04]
+ align [0 bytes]
+ align [0 bytes]
+ align [0 bytes]
+ ;; size=8 bbWeight=0.94 PerfScore 0.94
G_M27107_IG04: ; bbWeight=17.14, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, loop=IG04, byref, isz
ldrb w6, [x0, w4, UXTW #2]
orr w3, w3, w6
@@ -117,12 +116,11 @@ G_M27107_IG08: ; bbWeight=0.50, gcrefRegs=0102 {x1 x8}, byrefRegs=0001 {x
G_M27107_IG09: ; bbWeight=0.48, gcrefRegs=0102 {x1 x8}, byrefRegs=0001 {x0}, byref, isz
add x9, x8, #12
; byrRegs +[x9]
- b G_M27107_IG10
align [0 bytes for IG10]
align [0 bytes]
align [0 bytes]
align [0 bytes]
- ;; size=8 bbWeight=0.48 PerfScore 0.71
+ ;; size=4 bbWeight=0.48 PerfScore 0.24
G_M27107_IG10: ; bbWeight=8.57, gcrefRegs=0102 {x1 x8}, byrefRegs=0201 {x0 x9}, loop=IG10, byref, isz
mov w10, w7
ldrb w11, [x0, x10]
@@ -187,7 +185,7 @@ G_M27107_IG17: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
brk_windows #0
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 340, prolog size 12, PerfScore 279.32, instruction count 89, allocated bytes for code 340 (MethodHash=3263961c) for method Roslyn.Utilities.StringTable:AddSharedUtf8(System.ReadOnlySpan`1[ubyte]):System.String (Tier1)
+; Total bytes of code 316, prolog size 12, PerfScore 277.90, instruction count 87, allocated bytes for code 316 (MethodHash=3263961c) for method Roslyn.Utilities.StringTable:AddSharedUtf8(System.ReadOnlySpan`1[ubyte]):System.String (Tier1)
; ============================================================
Unwind Info:
@@ -198,7 +196,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 85 (0x00055) Actual length = 340 (0x000154)
+ Function Length : 79 (0x0004f) Actual length = 316 (0x00013c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+0 (0.00%) : 96080.dasm - System.Text.Encoding:GetBytes(ulong,int,ulong,int,System.Text.EncoderNLS):int:this (Tier1)No diffs found? +0 (0.00%) : 96096.dasm - System.Runtime.CompilerServices.ConditionalWeakTable`2+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (Tier1)No diffs found? +0 (0.00%) : 96112.dasm - System.DateTimeOffset:AddHours(double):System.DateTimeOffset:this (Tier0)No diffs found? benchmarks.run_tiered.windows.arm64.checked.mch-20 (-27.78%) : 39635.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsUnmanagedCallersOnlyAttributePopulated():this (Tier1)@@ -21,15 +21,14 @@ G_M48426_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M48426_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, align
+G_M48426_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
; byrRegs +[x0]
ldrsb wzr, [x0]
- b G_M48426_IG03
- align [4 bytes for IG03]
- align [4 bytes]
- align [4 bytes]
- align [4 bytes]
- ;; size=24 bbWeight=1 PerfScore 4.00
+ align [0 bytes for IG03]
+ align [0 bytes]
+ align [0 bytes]
+ align [0 bytes]
+ ;; size=4 bbWeight=1 PerfScore 3.00
G_M48426_IG03: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
ldr w1, [x0]
orr w2, w1, #0xD1FFAB1E
@@ -48,7 +47,7 @@ G_M48426_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 72, prolog size 8, PerfScore 67.50, instruction count 18, allocated bytes for code 72 (MethodHash=9c5542d5) for method Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsUnmanagedCallersOnlyAttributePopulated():this (Tier1)
+; Total bytes of code 52, prolog size 8, PerfScore 66.50, instruction count 17, allocated bytes for code 52 (MethodHash=9c5542d5) for method Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsUnmanagedCallersOnlyAttributePopulated():this (Tier1)
; ============================================================
Unwind Info:
@@ -59,7 +58,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 18 (0x00012) Actual length = 72 (0x000048)
+ Function Length : 13 (0x0000d) Actual length = 52 (0x000034)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-27.78%) : 39648.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsUseSiteDiagnosticPopulated():this (Tier1)@@ -21,15 +21,14 @@ G_M11989_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M11989_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, align
+G_M11989_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
; byrRegs +[x0]
ldrsb wzr, [x0]
- b G_M11989_IG03
- align [4 bytes for IG03]
- align [4 bytes]
- align [4 bytes]
- align [4 bytes]
- ;; size=24 bbWeight=1 PerfScore 4.00
+ align [0 bytes for IG03]
+ align [0 bytes]
+ align [0 bytes]
+ align [0 bytes]
+ ;; size=4 bbWeight=1 PerfScore 3.00
G_M11989_IG03: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
ldr w1, [x0]
orr w2, w1, #0xD1FFAB1E
@@ -48,7 +47,7 @@ G_M11989_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 72, prolog size 8, PerfScore 67.50, instruction count 18, allocated bytes for code 72 (MethodHash=acc9d12a) for method Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsUseSiteDiagnosticPopulated():this (Tier1)
+; Total bytes of code 52, prolog size 8, PerfScore 66.50, instruction count 17, allocated bytes for code 52 (MethodHash=acc9d12a) for method Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsUseSiteDiagnosticPopulated():this (Tier1)
; ============================================================
Unwind Info:
@@ -59,7 +58,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 18 (0x00012) Actual length = 72 (0x000048)
+ Function Length : 13 (0x0000d) Actual length = 52 (0x000034)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-19.23%) : 39325.dasm - Microsoft.CodeAnalysis.CSharp.BoundNodeExtensions:HasErrors[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):ubyte (Tier1)@@ -39,7 +39,7 @@ G_M60117_IG04: ; bbWeight=0.50, epilog, nogc, extend
ldp fp, lr, [sp], #0x10
ret lr
;; size=8 bbWeight=0.50 PerfScore 1.00
-G_M60117_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, gcvars, byref, isz, align
+G_M60117_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, gcvars, byref, isz
; gcrRegs +[x1]
mov w0, wzr
ldr w2, [x1, #0x08]
@@ -48,12 +48,11 @@ G_M60117_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
add x1, x1, #16
; gcrRegs -[x1]
; byrRegs +[x1]
- b G_M60117_IG06
- align [4 bytes for IG06]
- align [4 bytes]
- align [4 bytes]
- align [4 bytes]
- ;; size=40 bbWeight=0.50 PerfScore 3.25
+ align [0 bytes for IG06]
+ align [0 bytes]
+ align [0 bytes]
+ align [0 bytes]
+ ;; size=20 bbWeight=0.50 PerfScore 2.75
G_M60117_IG06: ; bbWeight=3.96, gcrefRegs=0000 {}, byrefRegs=0002 {x1}, loop=IG06, byref, isz
ldr x3, [x1, w0, UXTW #3]
; gcrRegs +[x3]
@@ -76,7 +75,7 @@ G_M60117_IG09: ; bbWeight=0.50, epilog, nogc, extend
ret lr
;; size=8 bbWeight=0.50 PerfScore 1.00
-; Total bytes of code 104, prolog size 8, PerfScore 44.39, instruction count 26, allocated bytes for code 104 (MethodHash=df16152a) for method Microsoft.CodeAnalysis.CSharp.BoundNodeExtensions:HasErrors[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):ubyte (Tier1)
+; Total bytes of code 84, prolog size 8, PerfScore 43.89, instruction count 25, allocated bytes for code 84 (MethodHash=df16152a) for method Microsoft.CodeAnalysis.CSharp.BoundNodeExtensions:HasErrors[System.__Canon](System.Collections.Immutable.ImmutableArray`1[System.__Canon]):ubyte (Tier1)
; ============================================================
Unwind Info:
@@ -87,7 +86,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
+ Function Length : 21 (0x00015) Actual length = 84 (0x000054)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+0 (0.00%) : 49328.dasm - System.Threading.Tests.Perf_Timer:CleanupShortScheduleAndDisposeWithFiringTimers():this (Tier0)No diffs found? +0 (0.00%) : 49344.dasm - Benchstone.MDBenchI.MDXposMatrix:Inner(int[,],int) (Tier1-OSR)No diffs found? +0 (0.00%) : 49360.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)No diffs found? coreclr_tests.run.windows.arm64.checked.mch-20 (-33.33%) : 311654.dasm - test:test_208():uint (FullOpts)@@ -17,14 +17,13 @@ G_M61720_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M61720_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, align
+G_M61720_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov w0, wzr
- b G_M61720_IG03
- align [4 bytes for IG03]
- align [4 bytes]
- align [4 bytes]
- align [4 bytes]
- ;; size=24 bbWeight=1 PerfScore 1.50
+ align [0 bytes for IG03]
+ align [0 bytes]
+ align [0 bytes]
+ align [0 bytes]
+ ;; size=4 bbWeight=1 PerfScore 0.50
G_M61720_IG03: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
add w1, w0, #1
cmp w1, #10
@@ -39,7 +38,7 @@ G_M61720_IG05: ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0000 {
b G_M61720_IG03
;; size=8 bbWeight=2 PerfScore 3.00
-; Total bytes of code 60, prolog size 8, PerfScore 16.00, instruction count 15, allocated bytes for code 60 (MethodHash=bbaf0ee7) for method test:test_208():uint (FullOpts)
+; Total bytes of code 40, prolog size 8, PerfScore 15.00, instruction count 14, allocated bytes for code 40 (MethodHash=bbaf0ee7) for method test:test_208():uint (FullOpts)
; ============================================================
Unwind Info:
@@ -50,7 +49,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 15 (0x0000f) Actual length = 60 (0x00003c)
+ Function Length : 10 (0x0000a) Actual length = 40 (0x000028)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-33.33%) : 249624.dasm - Program:Test(System.String) (FullOpts)@@ -19,15 +19,14 @@ G_M32957_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M32957_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, align
+G_M32957_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x0]
mov w1, wzr
- b G_M32957_IG03
- align [4 bytes for IG03]
- align [4 bytes]
- align [4 bytes]
- align [4 bytes]
- ;; size=24 bbWeight=1 PerfScore 1.50
+ align [0 bytes for IG03]
+ align [0 bytes]
+ align [0 bytes]
+ align [0 bytes]
+ ;; size=4 bbWeight=1 PerfScore 0.50
G_M32957_IG03: ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
cbz x0, G_M32957_IG05
;; size=4 bbWeight=4 PerfScore 4.00
@@ -45,7 +44,7 @@ G_M32957_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 60, prolog size 8, PerfScore 22.58, instruction count 15, allocated bytes for code 60 (MethodHash=4fcd7f42) for method Program:Test(System.String) (FullOpts)
+; Total bytes of code 40, prolog size 8, PerfScore 21.58, instruction count 14, allocated bytes for code 40 (MethodHash=4fcd7f42) for method Program:Test(System.String) (FullOpts)
; ============================================================
Unwind Info:
@@ -56,7 +55,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 15 (0x0000f) Actual length = 60 (0x00003c)
+ Function Length : 10 (0x0000a) Actual length = 40 (0x000028)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-33.33%) : 311641.dasm - test:test_108():long (FullOpts)@@ -17,14 +17,13 @@ G_M49751_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M49751_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, align
+G_M49751_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov x0, xzr
- b G_M49751_IG03
- align [4 bytes for IG03]
- align [4 bytes]
- align [4 bytes]
- align [4 bytes]
- ;; size=24 bbWeight=1 PerfScore 1.50
+ align [0 bytes for IG03]
+ align [0 bytes]
+ align [0 bytes]
+ align [0 bytes]
+ ;; size=4 bbWeight=1 PerfScore 0.50
G_M49751_IG03: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
add x1, x0, #1
cmp x1, #10
@@ -39,7 +38,7 @@ G_M49751_IG05: ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0000 {
b G_M49751_IG03
;; size=8 bbWeight=2 PerfScore 3.00
-; Total bytes of code 60, prolog size 8, PerfScore 16.00, instruction count 15, allocated bytes for code 60 (MethodHash=5a1b3da8) for method test:test_108():long (FullOpts)
+; Total bytes of code 40, prolog size 8, PerfScore 15.00, instruction count 14, allocated bytes for code 40 (MethodHash=5a1b3da8) for method test:test_108():long (FullOpts)
; ============================================================
Unwind Info:
@@ -50,7 +49,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 15 (0x0000f) Actual length = 60 (0x00003c)
+ Function Length : 10 (0x0000a) Actual length = 40 (0x000028)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+0 (0.00%) : 595360.dasm - System.Globalization.CultureInfo:get_DateTimeFormat():System.Globalization.DateTimeFormatInfo:this (Tier1)No diffs found? +0 (0.00%) : 595376.dasm - System.IO.Strategies.BufferedFileStreamStrategy:get_Position():long:this (Tier1)No diffs found? +0 (0.00%) : 595392.dasm - System.IO.Stream+<g__Core|27_0>d:MoveNext():this (Instrumented Tier1)No diffs found? libraries.crossgen2.windows.arm64.checked.mch+0 (0.00%) : 1.dasm - Microsoft.Extensions.Options.DataAnnotationValidateOptions`1[System.__Canon]:.ctor(System.String):this (FullOpts)No diffs found? +0 (0.00%) : 17.dasm - System.SR:get_ResourceManager():System.Resources.ResourceManager (FullOpts)No diffs found? +0 (0.00%) : 33.dasm - System.SR:get_Config_add_configurationsectiongroup_in_location_config():System.String (FullOpts)No diffs found? +0 (0.00%) : 244112.dasm - System.Xml.Linq.XContainer:CollectText(byref):System.String:this (FullOpts)No diffs found? +0 (0.00%) : 244128.dasm - System.Xml.Linq.XNodeReader:ReadOverNode(System.Xml.Linq.XNode):ubyte:this (FullOpts)No diffs found? +0 (0.00%) : 244144.dasm - System.Xml.Linq.StreamingElementWriter:GetPrefixOfNamespace(System.Xml.Linq.XNamespace,ubyte):System.String:this (FullOpts)No diffs found? libraries.pmi.windows.arm64.checked.mch-20 (-29.41%) : 215354.dasm - System.Text.EUCJPEncoding:CleanUpEndBytes(ulong):this (FullOpts)@@ -18,14 +18,13 @@ G_M54886_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M54886_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, align
+G_M54886_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov w0, #161
- b G_M54886_IG03
- align [4 bytes for IG03]
- align [4 bytes]
- align [4 bytes]
- align [4 bytes]
- ;; size=24 bbWeight=1 PerfScore 1.50
+ align [0 bytes for IG03]
+ align [0 bytes]
+ align [0 bytes]
+ align [0 bytes]
+ ;; size=4 bbWeight=1 PerfScore 0.50
G_M54886_IG03: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, loop=IG03, byref, isz
mov w2, #0xD1FFAB1E
strh w2, [x1, w0, SXTW #2]
@@ -42,7 +41,7 @@ G_M54886_IG05: ; bbWeight=1, epilog, nogc, extend
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 68, prolog size 8, PerfScore 20.50, instruction count 17, allocated bytes for code 68 (MethodHash=d79b2999) for method System.Text.EUCJPEncoding:CleanUpEndBytes(ulong):this (FullOpts)
+; Total bytes of code 48, prolog size 8, PerfScore 19.50, instruction count 16, allocated bytes for code 48 (MethodHash=d79b2999) for method System.Text.EUCJPEncoding:CleanUpEndBytes(ulong):this (FullOpts)
; ============================================================
Unwind Info:
@@ -53,7 +52,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 17 (0x00011) Actual length = 68 (0x000044)
+ Function Length : 12 (0x0000c) Actual length = 48 (0x000030)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-27.78%) : 68289.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsOverriddenOrHiddenMembersPopulated():this (FullOpts)@@ -21,15 +21,14 @@ G_M60464_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M60464_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, align
+G_M60464_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
; byrRegs +[x0]
ldrsb wzr, [x0]
- b G_M60464_IG03
- align [4 bytes for IG03]
- align [4 bytes]
- align [4 bytes]
- align [4 bytes]
- ;; size=24 bbWeight=1 PerfScore 4.00
+ align [0 bytes for IG03]
+ align [0 bytes]
+ align [0 bytes]
+ align [0 bytes]
+ ;; size=4 bbWeight=1 PerfScore 3.00
G_M60464_IG03: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
ldr w1, [x0]
orr w2, w1, #0xD1FFAB1E
@@ -48,7 +47,7 @@ G_M60464_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 72, prolog size 8, PerfScore 67.50, instruction count 18, allocated bytes for code 72 (MethodHash=6a9013cf) for method Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsOverriddenOrHiddenMembersPopulated():this (FullOpts)
+; Total bytes of code 52, prolog size 8, PerfScore 66.50, instruction count 17, allocated bytes for code 52 (MethodHash=6a9013cf) for method Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsOverriddenOrHiddenMembersPopulated():this (FullOpts)
; ============================================================
Unwind Info:
@@ -59,7 +58,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 18 (0x00012) Actual length = 72 (0x000048)
+ Function Length : 13 (0x0000d) Actual length = 52 (0x000034)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-27.78%) : 267764.dasm - System.IO.Compression.HuffmanTree:BitReverse(uint,int):uint (FullOpts)@@ -19,14 +19,13 @@ G_M34305_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M34305_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, align
+G_M34305_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov w2, wzr
- b G_M34305_IG03
- align [4 bytes for IG03]
- align [4 bytes]
- align [4 bytes]
- align [4 bytes]
- ;; size=24 bbWeight=1 PerfScore 1.50
+ align [0 bytes for IG03]
+ align [0 bytes]
+ align [0 bytes]
+ align [0 bytes]
+ ;; size=4 bbWeight=1 PerfScore 0.50
G_M34305_IG03: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, loop=IG03, byref, isz
and w3, w0, #1
orr w2, w2, w3
@@ -44,7 +43,7 @@ G_M34305_IG05: ; bbWeight=1, epilog, nogc, extend
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 72, prolog size 8, PerfScore 46.00, instruction count 18, allocated bytes for code 72 (MethodHash=016a79fe) for method System.IO.Compression.HuffmanTree:BitReverse(uint,int):uint (FullOpts)
+; Total bytes of code 52, prolog size 8, PerfScore 45.00, instruction count 17, allocated bytes for code 52 (MethodHash=016a79fe) for method System.IO.Compression.HuffmanTree:BitReverse(uint,int):uint (FullOpts)
; ============================================================
Unwind Info:
@@ -55,7 +54,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 18 (0x00012) Actual length = 72 (0x000048)
+ Function Length : 13 (0x0000d) Actual length = 52 (0x000034)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+0 (0.00%) : 305536.dasm - Xunit.TestMessageVisitor+<>c:b__2_23(Xunit.TestMessageVisitor,Xunit.Abstractions.ITestClassDisposeFinished):ubyte:this (FullOpts)No diffs found? +0 (0.00%) : 305552.dasm - Xunit.TestMessageVisitor+<>c:.cctor() (FullOpts)No diffs found? +0 (0.00%) : 305568.dasm - Xunit.Serialization.XunitSerializationInfo+ArraySerializer:Serialize(Xunit.Abstractions.IXunitSerializationInfo):this (FullOpts)No diffs found? libraries_tests.run.windows.arm64.Release.mch-20 (-27.78%) : 65155.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsConditionalAttributePopulated():this (Tier1)@@ -21,15 +21,14 @@ G_M55704_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M55704_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, align
+G_M55704_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
; byrRegs +[x0]
ldrsb wzr, [x0]
- b G_M55704_IG03
- align [4 bytes for IG03]
- align [4 bytes]
- align [4 bytes]
- align [4 bytes]
- ;; size=24 bbWeight=1 PerfScore 4.00
+ align [0 bytes for IG03]
+ align [0 bytes]
+ align [0 bytes]
+ align [0 bytes]
+ ;; size=4 bbWeight=1 PerfScore 3.00
G_M55704_IG03: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
ldr w1, [x0]
orr w2, w1, #0xD1FFAB1E
@@ -48,7 +47,7 @@ G_M55704_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 72, prolog size 8, PerfScore 67.07, instruction count 18, allocated bytes for code 72 (MethodHash=303c2667) for method Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsConditionalAttributePopulated():this (Tier1)
+; Total bytes of code 52, prolog size 8, PerfScore 66.07, instruction count 17, allocated bytes for code 52 (MethodHash=303c2667) for method Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsConditionalAttributePopulated():this (Tier1)
; ============================================================
Unwind Info:
@@ -59,7 +58,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 18 (0x00012) Actual length = 72 (0x000048)
+ Function Length : 13 (0x0000d) Actual length = 52 (0x000034)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-27.78%) : 621124.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsMemberNotNullPopulated():this (Tier1)@@ -21,15 +21,14 @@ G_M58404_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M58404_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, align
+G_M58404_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
; byrRegs +[x0]
ldrsb wzr, [x0]
- b G_M58404_IG03
- align [4 bytes for IG03]
- align [4 bytes]
- align [4 bytes]
- align [4 bytes]
- ;; size=24 bbWeight=1 PerfScore 4.00
+ align [0 bytes for IG03]
+ align [0 bytes]
+ align [0 bytes]
+ align [0 bytes]
+ ;; size=4 bbWeight=1 PerfScore 3.00
G_M58404_IG03: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
ldr w1, [x0]
orr w2, w1, #0xD1FFAB1E
@@ -48,7 +47,7 @@ G_M58404_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 72, prolog size 8, PerfScore 65.16, instruction count 18, allocated bytes for code 72 (MethodHash=bb0d1bdb) for method Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsMemberNotNullPopulated():this (Tier1)
+; Total bytes of code 52, prolog size 8, PerfScore 64.16, instruction count 17, allocated bytes for code 52 (MethodHash=bb0d1bdb) for method Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsMemberNotNullPopulated():this (Tier1)
; ============================================================
Unwind Info:
@@ -59,7 +58,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 18 (0x00012) Actual length = 72 (0x000048)
+ Function Length : 13 (0x0000d) Actual length = 52 (0x000034)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-27.78%) : 59861.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsUnmanagedCallersOnlyAttributePopulated():this (Tier1)@@ -21,15 +21,14 @@ G_M48426_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M48426_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, align
+G_M48426_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
; byrRegs +[x0]
ldrsb wzr, [x0]
- b G_M48426_IG03
- align [4 bytes for IG03]
- align [4 bytes]
- align [4 bytes]
- align [4 bytes]
- ;; size=24 bbWeight=1 PerfScore 4.00
+ align [0 bytes for IG03]
+ align [0 bytes]
+ align [0 bytes]
+ align [0 bytes]
+ ;; size=4 bbWeight=1 PerfScore 3.00
G_M48426_IG03: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
ldr w1, [x0]
orr w2, w1, #0xD1FFAB1E
@@ -48,7 +47,7 @@ G_M48426_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 72, prolog size 8, PerfScore 67.07, instruction count 18, allocated bytes for code 72 (MethodHash=9c5542d5) for method Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsUnmanagedCallersOnlyAttributePopulated():this (Tier1)
+; Total bytes of code 52, prolog size 8, PerfScore 66.07, instruction count 17, allocated bytes for code 52 (MethodHash=9c5542d5) for method Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol+PackedFlags:SetIsUnmanagedCallersOnlyAttributePopulated():this (Tier1)
; ============================================================
Unwind Info:
@@ -59,7 +58,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 18 (0x00012) Actual length = 72 (0x000048)
+ Function Length : 13 (0x0000d) Actual length = 52 (0x000034)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+0 (0.00%) : 651568.dasm - XmlSerializerTests:Deserialize(System.Xml.Serialization.XmlSerializer,System.String):System.Object (Tier0)No diffs found? +0 (0.00%) : 651584.dasm - XmlSerializerTests:XmlMembersMapping_Soap_SimpleType() (Tier0)No diffs found? +0 (0.00%) : 651600.dasm - SerializationTypes.HighScores+BridgeGameHighScore:.ctor():this (Tier0)No diffs found? libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch-20 (-29.41%) : 241066.dasm - System.Text.EUCJPEncoding:CleanUpEndBytes(ulong):this (FullOpts)@@ -18,14 +18,13 @@ G_M54886_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M54886_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, align
+G_M54886_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov w0, #161
- b G_M54886_IG03
- align [4 bytes for IG03]
- align [4 bytes]
- align [4 bytes]
- align [4 bytes]
- ;; size=24 bbWeight=1 PerfScore 1.50
+ align [0 bytes for IG03]
+ align [0 bytes]
+ align [0 bytes]
+ align [0 bytes]
+ ;; size=4 bbWeight=1 PerfScore 0.50
G_M54886_IG03: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, loop=IG03, byref, isz
mov w2, #0xD1FFAB1E
strh w2, [x1, w0, SXTW #2]
@@ -42,7 +41,7 @@ G_M54886_IG05: ; bbWeight=1, epilog, nogc, extend
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 68, prolog size 8, PerfScore 20.50, instruction count 17, allocated bytes for code 68 (MethodHash=d79b2999) for method System.Text.EUCJPEncoding:CleanUpEndBytes(ulong):this (FullOpts)
+; Total bytes of code 48, prolog size 8, PerfScore 19.50, instruction count 16, allocated bytes for code 48 (MethodHash=d79b2999) for method System.Text.EUCJPEncoding:CleanUpEndBytes(ulong):this (FullOpts)
; ============================================================
Unwind Info:
@@ -53,7 +52,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 17 (0x00011) Actual length = 68 (0x000044)
+ Function Length : 12 (0x0000c) Actual length = 48 (0x000030)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-20.83%) : 56081.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState:SetValue(int,int,ubyte):this (FullOpts)@@ -23,14 +23,13 @@ G_M47155_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov fp, sp
mov w4, w2
;; size=12 bbWeight=1 PerfScore 2.00
-G_M47155_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, align
+G_M47155_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
; byrRegs +[x0]
- b G_M47155_IG03
- align [4 bytes for IG03]
- align [4 bytes]
- align [4 bytes]
- align [4 bytes]
- ;; size=20 bbWeight=1 PerfScore 1.00
+ align [0 bytes for IG03]
+ align [0 bytes]
+ align [0 bytes]
+ align [0 bytes]
+ ;; size=0 bbWeight=1 PerfScore 0.00
G_M47155_IG03: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
ldr w2, [x0, #0x08]
cmp w2, w1
@@ -61,7 +60,7 @@ G_M47155_IG06: ; bbWeight=1, epilog, nogc, extend
; gcr arg pop 0
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 96, prolog size 12, PerfScore 78.50, instruction count 24, allocated bytes for code 96 (MethodHash=412047cc) for method Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState:SetValue(int,int,ubyte):this (FullOpts)
+; Total bytes of code 76, prolog size 12, PerfScore 77.50, instruction count 23, allocated bytes for code 76 (MethodHash=412047cc) for method Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState:SetValue(int,int,ubyte):this (FullOpts)
; ============================================================
Unwind Info:
@@ -72,7 +71,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 24 (0x00018) Actual length = 96 (0x000060)
+ Function Length : 19 (0x00013) Actual length = 76 (0x00004c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-20.00%) : 47415.dasm - Roslyn.Utilities.Hash:GetFNVHashCode(System.Collections.Immutable.ImmutableArray`1[ubyte]):int (FullOpts)@@ -23,7 +23,7 @@ G_M25313_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M25313_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz, align
+G_M25313_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x0]
movz w1, #0xD1FFAB1E
movk w1, #0xD1FFAB1E LSL #16
@@ -36,12 +36,11 @@ G_M25313_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
; byrRegs +[x0]
movz w4, #0xD1FFAB1E
movk w4, #0xD1FFAB1E LSL #16
- b G_M25313_IG03
- align [4 bytes for IG03]
- align [4 bytes]
- align [4 bytes]
- align [4 bytes]
- ;; size=56 bbWeight=1 PerfScore 8.50
+ align [0 bytes for IG03]
+ align [0 bytes]
+ align [0 bytes]
+ align [0 bytes]
+ ;; size=36 bbWeight=1 PerfScore 7.50
G_M25313_IG03: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, loop=IG03, byref, isz
ldrb w5, [x0, w2, UXTW #2]
eor w1, w5, w1
@@ -59,7 +58,7 @@ G_M25313_IG05: ; bbWeight=1, epilog, nogc, extend
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 100, prolog size 8, PerfScore 42.50, instruction count 25, allocated bytes for code 100 (MethodHash=a01d9d1e) for method Roslyn.Utilities.Hash:GetFNVHashCode(System.Collections.Immutable.ImmutableArray`1[ubyte]):int (FullOpts)
+; Total bytes of code 80, prolog size 8, PerfScore 41.50, instruction count 24, allocated bytes for code 80 (MethodHash=a01d9d1e) for method Roslyn.Utilities.Hash:GetFNVHashCode(System.Collections.Immutable.ImmutableArray`1[ubyte]):int (FullOpts)
; ============================================================
Unwind Info:
@@ -70,7 +69,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 25 (0x00019) Actual length = 100 (0x000064)
+ Function Length : 20 (0x00014) Actual length = 80 (0x000050)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+0 (0.00%) : 317008.dasm - SerializationTypes.SerializableSlide:set_EventType(int):this (FullOpts)No diffs found? +0 (0.00%) : 317056.dasm - XmlSerializerTests:Xml_TypeNamesWithSpecialCharacters() (FullOpts)No diffs found? +0 (0.00%) : 317072.dasm - XmlSerializerTests:Xml_Soap_Nullable() (FullOpts)No diffs found? realworld.run.windows.arm64.checked.mch-20 (-29.41%) : 11678.dasm - SixLabors.ImageSharp.Formats.Jpeg.Components.Block8x8F:RoundInPlace():this (FullOpts)@@ -20,15 +20,14 @@ G_M13714_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M13714_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, align
+G_M13714_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
; byrRegs +[x0]
mov w1, wzr
- b G_M13714_IG03
- align [4 bytes for IG03]
- align [4 bytes]
- align [4 bytes]
- align [4 bytes]
- ;; size=24 bbWeight=1 PerfScore 1.50
+ align [0 bytes for IG03]
+ align [0 bytes]
+ align [0 bytes]
+ align [0 bytes]
+ ;; size=4 bbWeight=1 PerfScore 0.50
G_M13714_IG03: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, loop=IG03, byref, isz
ubfiz x2, x1, #2, #32
ldr s16, [x0, x2]
@@ -44,7 +43,7 @@ G_M13714_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 68, prolog size 8, PerfScore 41.00, instruction count 17, allocated bytes for code 68 (MethodHash=6b4bca6d) for method SixLabors.ImageSharp.Formats.Jpeg.Components.Block8x8F:RoundInPlace():this (FullOpts)
+; Total bytes of code 48, prolog size 8, PerfScore 40.00, instruction count 16, allocated bytes for code 48 (MethodHash=6b4bca6d) for method SixLabors.ImageSharp.Formats.Jpeg.Components.Block8x8F:RoundInPlace():this (FullOpts)
; ============================================================
Unwind Info:
@@ -55,7 +54,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 17 (0x00011) Actual length = 68 (0x000044)
+ Function Length : 12 (0x0000c) Actual length = 48 (0x000030)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-23.81%) : 11588.dasm - SixLabors.ImageSharp.Formats.Jpeg.Components.Block8x8F:EqualsToScalar(int):ubyte:this (FullOpts)@@ -23,15 +23,14 @@ G_M12272_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M12272_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, align
+G_M12272_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
; byrRegs +[x0]
mov w2, wzr
- b G_M12272_IG03
- align [4 bytes for IG03]
- align [4 bytes]
- align [4 bytes]
- align [4 bytes]
- ;; size=24 bbWeight=1 PerfScore 1.50
+ align [0 bytes for IG03]
+ align [0 bytes]
+ align [0 bytes]
+ align [0 bytes]
+ ;; size=4 bbWeight=1 PerfScore 0.50
G_M12272_IG03: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, loop=IG03, byref, isz
ldr s16, [x0, w2, SXTW #2]
fcvtzs w3, s16
@@ -57,7 +56,7 @@ G_M12272_IG07: ; bbWeight=0.50, epilog, nogc, extend
ret lr
;; size=8 bbWeight=0.50 PerfScore 1.00
-; Total bytes of code 84, prolog size 8, PerfScore 39.50, instruction count 21, allocated bytes for code 84 (MethodHash=1c93d00f) for method SixLabors.ImageSharp.Formats.Jpeg.Components.Block8x8F:EqualsToScalar(int):ubyte:this (FullOpts)
+; Total bytes of code 64, prolog size 8, PerfScore 38.50, instruction count 20, allocated bytes for code 64 (MethodHash=1c93d00f) for method SixLabors.ImageSharp.Formats.Jpeg.Components.Block8x8F:EqualsToScalar(int):ubyte:this (FullOpts)
; ============================================================
Unwind Info:
@@ -68,7 +67,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 21 (0x00015) Actual length = 84 (0x000054)
+ Function Length : 16 (0x00010) Actual length = 64 (0x000040)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-20.83%) : 22797.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState:SetValue(int,int,ubyte):this (FullOpts)@@ -23,14 +23,13 @@ G_M47155_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov fp, sp
mov w4, w2
;; size=12 bbWeight=1 PerfScore 2.00
-G_M47155_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, align
+G_M47155_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
; byrRegs +[x0]
- b G_M47155_IG03
- align [4 bytes for IG03]
- align [4 bytes]
- align [4 bytes]
- align [4 bytes]
- ;; size=20 bbWeight=1 PerfScore 1.00
+ align [0 bytes for IG03]
+ align [0 bytes]
+ align [0 bytes]
+ align [0 bytes]
+ ;; size=0 bbWeight=1 PerfScore 0.00
G_M47155_IG03: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
ldr w2, [x0, #0x08]
cmp w2, w1
@@ -61,7 +60,7 @@ G_M47155_IG06: ; bbWeight=1, epilog, nogc, extend
; gcr arg pop 0
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 96, prolog size 12, PerfScore 78.50, instruction count 24, allocated bytes for code 96 (MethodHash=412047cc) for method Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState:SetValue(int,int,ubyte):this (FullOpts)
+; Total bytes of code 76, prolog size 12, PerfScore 77.50, instruction count 23, allocated bytes for code 76 (MethodHash=412047cc) for method Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState:SetValue(int,int,ubyte):this (FullOpts)
; ============================================================
Unwind Info:
@@ -72,7 +71,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 24 (0x00018) Actual length = 96 (0x000060)
+ Function Length : 19 (0x00013) Actual length = 76 (0x00004c)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+0 (0.00%) : 33168.dasm - System.Management.Automation.ComInterop.ComBinder+<>c:.cctor() (FullOpts)No diffs found? +0 (0.00%) : 33184.dasm - System.Management.Automation.ComInterop.VarEnumSelector:TryGetPrimitiveComTypeViaConversion(System.Type,byref):ubyte (FullOpts)No diffs found? +0 (0.00%) : 33200.dasm - System.Management.Automation.ComInterop.VariantBuilder:Clear():System.Linq.Expressions.Expression:this (FullOpts)No diffs found? smoke_tests.nativeaot.windows.arm64.checked.mch-20 (-29.41%) : 21176.dasm - System.Threading.Thread:SetThreadStateBit(int):int:this (FullOpts)@@ -20,17 +20,16 @@ G_M21926_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M21926_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, align
+G_M21926_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x0]
add x0, x0, #72
; gcrRegs -[x0]
; byrRegs +[x0]
- b G_M21926_IG03
- align [4 bytes for IG03]
- align [4 bytes]
- align [4 bytes]
- align [4 bytes]
- ;; size=24 bbWeight=1 PerfScore 1.50
+ align [0 bytes for IG03]
+ align [0 bytes]
+ align [0 bytes]
+ align [0 bytes]
+ ;; size=4 bbWeight=1 PerfScore 0.50
G_M21926_IG03: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, loop=IG03, byref, isz
ldar w2, [x0]
orr w3, w2, w1
@@ -48,7 +47,7 @@ G_M21926_IG05: ; bbWeight=1, epilog, nogc, extend
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 68, prolog size 8, PerfScore 73.50, instruction count 17, allocated bytes for code 68 (MethodHash=cdfbaa59) for method System.Threading.Thread:SetThreadStateBit(int):int:this (FullOpts)
+; Total bytes of code 48, prolog size 8, PerfScore 72.50, instruction count 16, allocated bytes for code 48 (MethodHash=cdfbaa59) for method System.Threading.Thread:SetThreadStateBit(int):int:this (FullOpts)
; ============================================================
Unwind Info:
@@ -59,7 +58,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 17 (0x00011) Actual length = 68 (0x000044)
+ Function Length : 12 (0x0000c) Actual length = 48 (0x000030)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-27.78%) : 20345.dasm - System.Threading.Interlocked:Or(byref,int):int (FullOpts)@@ -20,15 +20,14 @@ G_M62437_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
stp fp, lr, [sp, #-0x10]!
mov fp, sp
;; size=8 bbWeight=1 PerfScore 1.50
-G_M62437_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, align
+G_M62437_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
; byrRegs +[x0]
ldr w2, [x0]
- b G_M62437_IG03
- align [4 bytes for IG03]
- align [4 bytes]
- align [4 bytes]
- align [4 bytes]
- ;; size=24 bbWeight=1 PerfScore 4.00
+ align [0 bytes for IG03]
+ align [0 bytes]
+ align [0 bytes]
+ align [0 bytes]
+ ;; size=4 bbWeight=1 PerfScore 3.00
G_M62437_IG03: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
orr w3, w2, w1
mov w4, w2
@@ -49,7 +48,7 @@ G_M62437_IG06: ; bbWeight=1, epilog, nogc, extend
ret lr
;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 72, prolog size 8, PerfScore 58.00, instruction count 18, allocated bytes for code 72 (MethodHash=77060c1a) for method System.Threading.Interlocked:Or(byref,int):int (FullOpts)
+; Total bytes of code 52, prolog size 8, PerfScore 57.00, instruction count 17, allocated bytes for code 52 (MethodHash=77060c1a) for method System.Threading.Interlocked:Or(byref,int):int (FullOpts)
; ============================================================
Unwind Info:
@@ -60,7 +59,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 18 (0x00012) Actual length = 72 (0x000048)
+ Function Length : 13 (0x0000d) Actual length = 52 (0x000034)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-4 (-20.00%) : 16060.dasm - Internal.TypeSystem.FieldForInstantiatedType:get_IsStatic():ubyte:this (FullOpts)@@ -19,18 +19,17 @@ G_M46894_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=8 bbWeight=1 PerfScore 1.50
G_M46894_IG02: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[x0]
- b G_M46894_IG03
align [0 bytes for IG03]
align [0 bytes]
align [0 bytes]
align [0 bytes]
- ;; size=4 bbWeight=1 PerfScore 1.00
+ ;; size=0 bbWeight=1 PerfScore 0.00
G_M46894_IG03: ; bbWeight=8, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, loop=IG03, byref
ldr x0, [x0, #0x08]
b G_M46894_IG03
;; size=8 bbWeight=8 PerfScore 32.00
-; Total bytes of code 20, prolog size 8, PerfScore 34.50, instruction count 9, allocated bytes for code 20 (MethodHash=de3248d1) for method Internal.TypeSystem.FieldForInstantiatedType:get_IsStatic():ubyte:this (FullOpts)
+; Total bytes of code 16, prolog size 8, PerfScore 33.50, instruction count 8, allocated bytes for code 16 (MethodHash=de3248d1) for method Internal.TypeSystem.FieldForInstantiatedType:get_IsStatic():ubyte:this (FullOpts)
; ============================================================
Unwind Info:
@@ -41,7 +40,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 5 (0x00005) Actual length = 20 (0x000014)
+ Function Length : 4 (0x00004) Actual length = 16 (0x000010)
---- Epilog scopes ----
No epilogs
---- Unwind codes ----
+0 (0.00%) : 24128.dasm - Interop+Kernel32:ReleaseMutex(Microsoft.Win32.SafeHandles.SafeWaitHandle):ubyte (FullOpts)No diffs found? +0 (0.00%) : 24144.dasm - System.Threading.Tasks.Task:WaitAllCore(System.Threading.Tasks.Task[],int,System.Threading.CancellationToken):ubyte (FullOpts)No diffs found? +0 (0.00%) : 24160.dasm - System.Threading._ThreadPoolWaitOrTimerCallback:WaitOrTimerCallback_Context_f(System.Object) (FullOpts)No diffs found? DetailsImprovements/regressions per collection
Context information
jit-analyze output |
Diff results for #97011Throughput diffsThroughput diffs for linux/arm64 ran on windows/x64Overall (-0.01% to -0.00%)
MinOpts (-0.02% to -0.00%)
FullOpts (-0.01% to -0.00%)
Throughput diffs for linux/x64 ran on windows/x64Overall (-0.01%)
MinOpts (-0.02% to -0.00%)
FullOpts (-0.01%)
Throughput diffs for osx/arm64 ran on windows/x64Overall (-0.01% to -0.00%)
MinOpts (-0.02% to -0.00%)
FullOpts (-0.01% to -0.00%)
Throughput diffs for windows/arm64 ran on windows/x64Overall (-0.01% to -0.00%)
MinOpts (-0.02% to -0.00%)
FullOpts (-0.01% to -0.00%)
Throughput diffs for windows/x64 ran on windows/x64Overall (-0.01%)
MinOpts (-0.02% to -0.00%)
FullOpts (-0.01%)
Details here Throughput diffs for windows/x86 ran on linux/x86Overall (-0.01%)
MinOpts (-0.05% to -0.01%)
FullOpts (-0.01%)
Details here |
Diff results for #97011Throughput diffsThroughput diffs for linux/arm64 ran on linux/x64Overall (-0.02% to -0.01%)
MinOpts (-0.04% to 0.00%)
FullOpts (-0.01%)
Throughput diffs for linux/x64 ran on linux/x64Overall (-0.02% to -0.01%)
MinOpts (-0.04% to 0.00%)
FullOpts (-0.01%)
Details here Throughput diffs for linux/arm ran on windows/x86Overall (-0.01%)
MinOpts (-0.03% to -0.00%)
FullOpts (-0.01% to -0.00%)
Details here |
Fixes #96998. The jump-to-next-block removal optimization currently passes on jumps with alignment padding behind them (see
BasicBlock::CanRemoveJumpToNext
). While our alignment placement strategy does not consider blocks with jumps that will be removed, it is possible for such a block to be chosen if it precedes the start of the loop being aligned. This alignment decision blocks the jump from being removed. Under normal circumstances, it should be fine to remove such jumps, and just fall through the alignment padding into the next block, but JitStress might decide to place breakpoint instructions in these alignment areas if behind a jump. So in debug builds, we now tellemitter::emitLoopAlignment
if the jump was removed so JitStress does not consider placing breakpoints in the alignment padding.