Skip to content
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

Merged
merged 3 commits into from
Feb 2, 2024

Conversation

amanasifkhalid
Copy link
Member

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 tell emitter::emitLoopAlignment if the jump was removed so JitStress does not consider placing breakpoints in the alignment padding.

@dotnet-issue-labeler dotnet-issue-labeler bot added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Jan 15, 2024
@ghost ghost assigned amanasifkhalid Jan 15, 2024
@ghost
Copy link

ghost commented Jan 15, 2024

Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch
See info in area-owners.md if you want to be subscribed.

Issue Details

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 tell emitter::emitLoopAlignment if the jump was removed so JitStress does not consider placing breakpoints in the alignment padding.

Author: amanasifkhalid
Assignees: -
Labels:

area-CodeGen-coreclr

Milestone: -

@amanasifkhalid
Copy link
Member Author

/azp run runtime-coreclr jitstress

Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@amanasifkhalid
Copy link
Member Author

SPMI diffs targeting Windows x64 with loop alignment on:

MinOpts, 1,518,221 FullOpts).

MISSED contexts: 5,386 (0.21%)

Overall (-24,857 bytes)
Collection Base size (bytes) Diff size (bytes)
aspnet.run.windows.x64.checked.mch 44,186,002 -911
benchmarks.run.windows.x64.checked.mch 8,670,353 -1,342
benchmarks.run_pgo.windows.x64.checked.mch 36,143,212 -2,628
benchmarks.run_tiered.windows.x64.checked.mch 12,705,951 -917
coreclr_tests.run.windows.x64.checked.mch 392,900,026 -7,038
libraries.pmi.windows.x64.checked.mch 60,755,240 -3,010
libraries_tests.run.windows.x64.Release.mch 282,737,966 -3,776
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch 132,963,783 -2,717
realworld.run.windows.x64.checked.mch 14,169,892 -1,514
smoke_tests.nativeaot.windows.x64.checked.mch 5,050,254 -1,004
FullOpts (-24,857 bytes)
Collection Base size (bytes) Diff size (bytes)
aspnet.run.windows.x64.checked.mch 28,997,187 -911
benchmarks.run.windows.x64.checked.mch 8,669,992 -1,342
benchmarks.run_pgo.windows.x64.checked.mch 21,736,217 -2,628
benchmarks.run_tiered.windows.x64.checked.mch 3,527,746 -917
coreclr_tests.run.windows.x64.checked.mch 119,432,004 -7,038
libraries.pmi.windows.x64.checked.mch 60,641,721 -3,010
libraries_tests.run.windows.x64.Release.mch 104,907,459 -3,776
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch 121,987,828 -2,717
realworld.run.windows.x64.checked.mch 13,780,187 -1,514
smoke_tests.nativeaot.windows.x64.checked.mch 5,049,345 -1,004
Example diffs
aspnet.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:
Details

Improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes)
aspnet.run.windows.x64.checked.mch 644 362 14 268 -1,002 +91
benchmarks.run.windows.x64.checked.mch 461 298 9 154 -1,390 +48
benchmarks.run_pgo.windows.x64.checked.mch 868 583 2 283 -2,639 +11
benchmarks.run_tiered.windows.x64.checked.mch 244 164 4 76 -941 +24
coreclr_tests.run.windows.x64.checked.mch 2,328 1,562 9 757 -7,085 +47
libraries.crossgen2.windows.x64.checked.mch 0 0 0 0 -0 +0
libraries.pmi.windows.x64.checked.mch 1,104 748 9 347 -3,047 +37
libraries_tests.run.windows.x64.Release.mch 1,410 855 16 539 -3,834 +58
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch 1,088 671 4 413 -2,735 +18
realworld.run.windows.x64.checked.mch 502 309 5 188 -1,537 +23
smoke_tests.nativeaot.windows.x64.checked.mch 462 246 9 207 -1,029 +25
9,111 5,798 81 3,232 -25,239 +382

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
aspnet.run.windows.x64.checked.mch 116,905 50,265 66,640 70 (0.06%) 70 (0.06%)
benchmarks.run.windows.x64.checked.mch 28,120 4 28,116 0 (0.00%) 0 (0.00%)
benchmarks.run_pgo.windows.x64.checked.mch 104,308 50,916 53,392 338 (0.32%) 338 (0.32%)
benchmarks.run_tiered.windows.x64.checked.mch 54,817 36,834 17,983 0 (0.00%) 0 (0.00%)
coreclr_tests.run.windows.x64.checked.mch 573,567 340,937 232,630 473 (0.08%) 473 (0.08%)
libraries.crossgen2.windows.x64.checked.mch 242,816 15 242,801 0 (0.00%) 0 (0.00%)
libraries.pmi.windows.x64.checked.mch 307,257 6 307,251 223 (0.07%) 223 (0.07%)
libraries_tests.run.windows.x64.Release.mch 687,138 483,877 203,261 3,631 (0.53%) 3,631 (0.53%)
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch 318,642 21,842 296,800 651 (0.20%) 651 (0.20%)
realworld.run.windows.x64.checked.mch 36,883 3 36,880 0 (0.00%) 0 (0.00%)
smoke_tests.nativeaot.windows.x64.checked.mch 32,477 10 32,467 0 (0.00%) 0 (0.00%)
2,502,930 984,709 1,518,221 5,386 (0.21%) 5,386 (0.21%)

jit-analyze output

@amanasifkhalid
Copy link
Member Author

SPMI diffs targeting Windows arm64 with loop alignment on:

MISSED contexts: 641 (0.03%)

Overall (-64,340 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch 10,845,992 -3,352
benchmarks.run_pgo.windows.arm64.checked.mch 45,993,456 -5,476
benchmarks.run_tiered.windows.arm64.checked.mch 15,261,108 -2,100
coreclr_tests.run.windows.arm64.checked.mch 507,955,604 -24,596
libraries.crossgen2.windows.arm64.checked.mch 58,916,848 +0
libraries.pmi.windows.arm64.checked.mch 79,537,232 -6,976
libraries_tests.run.windows.arm64.Release.mch 315,206,176 -9,216
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch 168,760,816 -8,228
realworld.run.windows.arm64.checked.mch 15,876,852 -2,928
smoke_tests.nativeaot.windows.arm64.checked.mch 3,976,228 -1,468
MinOpts (+0 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch 536 +0
benchmarks.run_pgo.windows.arm64.checked.mch 16,167,508 +0
benchmarks.run_tiered.windows.arm64.checked.mch 11,175,140 +0
coreclr_tests.run.windows.arm64.checked.mch 347,495,076 +0
libraries.crossgen2.windows.arm64.checked.mch 1,636 +0
libraries.pmi.windows.arm64.checked.mch 119,984 +0
libraries_tests.run.windows.arm64.Release.mch 201,848,152 +0
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch 13,136,560 +0
realworld.run.windows.arm64.checked.mch 568,416 +0
smoke_tests.nativeaot.windows.arm64.checked.mch 972 +0
FullOpts (-64,340 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch 10,845,456 -3,352
benchmarks.run_pgo.windows.arm64.checked.mch 29,825,948 -5,476
benchmarks.run_tiered.windows.arm64.checked.mch 4,085,968 -2,100
coreclr_tests.run.windows.arm64.checked.mch 160,460,528 -24,596
libraries.crossgen2.windows.arm64.checked.mch 58,915,212 +0
libraries.pmi.windows.arm64.checked.mch 79,417,248 -6,976
libraries_tests.run.windows.arm64.Release.mch 113,358,024 -9,216
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch 155,624,256 -8,228
realworld.run.windows.arm64.checked.mch 15,308,436 -2,928
smoke_tests.nativeaot.windows.arm64.checked.mch 3,975,256 -1,468
Example diffs
benchmarks.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?

Details

Improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes)
benchmarks.run.windows.arm64.checked.mch 22,948 450 0 22,498 -3,352 +0
benchmarks.run_pgo.windows.arm64.checked.mch 89,648 732 0 88,916 -5,476 +0
benchmarks.run_tiered.windows.arm64.checked.mch 43,816 241 0 43,575 -2,100 +0
coreclr_tests.run.windows.arm64.checked.mch 585,536 4,156 0 581,380 -24,596 +0
libraries.crossgen2.windows.arm64.checked.mch 225,845 0 0 225,845 -0 +0
libraries.pmi.windows.arm64.checked.mch 274,885 1,125 0 273,760 -6,976 +0
libraries_tests.run.windows.arm64.Release.mch 597,381 1,555 0 595,826 -9,216 +0
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch 298,062 1,250 0 296,812 -8,228 +0
realworld.run.windows.arm64.checked.mch 30,821 384 0 30,437 -2,928 +0
smoke_tests.nativeaot.windows.arm64.checked.mch 20,770 264 0 20,506 -1,468 +0
2,189,712 10,157 0 2,179,555 -64,340 +0

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
benchmarks.run.windows.arm64.checked.mch 24,399 4 24,395 9 (0.04%) 9 (0.04%)
benchmarks.run_pgo.windows.arm64.checked.mch 95,616 48,402 47,214 47 (0.05%) 47 (0.05%)
benchmarks.run_tiered.windows.arm64.checked.mch 48,622 36,659 11,963 2 (0.00%) 2 (0.00%)
coreclr_tests.run.windows.arm64.checked.mch 618,118 379,287 238,831 55 (0.01%) 55 (0.01%)
libraries.crossgen2.windows.arm64.checked.mch 243,308 15 243,293 0 (0.00%) 0 (0.00%)
libraries.pmi.windows.arm64.checked.mch 304,271 6 304,265 67 (0.02%) 67 (0.02%)
libraries_tests.run.windows.arm64.Release.mch 632,803 461,399 171,404 264 (0.04%) 264 (0.04%)
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch 315,896 21,515 294,381 176 (0.06%) 176 (0.06%)
realworld.run.windows.arm64.checked.mch 33,214 3 33,211 21 (0.06%) 21 (0.06%)
smoke_tests.nativeaot.windows.arm64.checked.mch 24,205 7 24,198 0 (0.00%) 0 (0.00%)
2,340,452 947,297 1,393,155 641 (0.03%) 641 (0.03%)

jit-analyze output

@amanasifkhalid amanasifkhalid marked this pull request as ready for review January 16, 2024 02:22
@amanasifkhalid
Copy link
Member Author

cc @dotnet/jit-contrib, @jakobbotsch PTAL.

Copy link
Member

@jakobbotsch jakobbotsch left a 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.

@kunalspathak
Copy link
Member

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.

Under normal circumstances, it should be fine to remove such jumps, and just fall through the alignment padding into the next block,

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

but JitStress might decide to place breakpoint instructions in these alignment areas if behind a jump. So in debug builds, we now tell emitter::emitLoopAlignment if the jump was removed so JitStress does not consider placing breakpoints in the alignment padding.

This looks fine to me.

@amanasifkhalid
Copy link
Member Author

Below, IG05 ~ IG06 is aligned and if that loop was inside another hot loop of IG03 ~ IG07, we will execute the alignment code, right?

Yes, in that case, we'll now execute the alignment padding.

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.

It's a bit confusing, but in Compiler::placeLoopAlignInstructions, if the JIT decides to place alignment behind a jump because opts.compJitHideAlignBehindJmp is set, it will avoid choosing a jump that is going to be removed; in these scenarios, we won't execute the alignment code. But if the JIT finds the beginning of a loop that should be aligned, and it hasn't yet found a jump that won't be removed to place the alignment behind, it just picks the block before the start of the loop, which could be a BBJ_ALWAYS with a removable jump. In these scenarios, we will execute the alignment code.

Under non-stress circumstances, the alignment code is always just nops, right? Are there consequences to executing it?

@kunalspathak
Copy link
Member

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 align behind jump if the block where align is being placed will execute more than once (can find out by bbWeight)

@jakobbotsch
Copy link
Member

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 .

When BBJ_NONE existed it would execute the same alignment. As far as I understand it, this change is just making BBJ_ALWAYS with jumps to the next BB and with BBF_NONE_QUIRK behave in the same way as the JIT used to do for BBJ_NONE.

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 BBJ_NONE block falls into 6 bytes of alignment.

@kunalspathak
Copy link
Member

For example, on 05bc701 (ancestor of BBJ_NONE removal commit), the following program

I see, so essentially 05bc701 added the extra jmp that is mentioned in #96998.

@jakobbotsch
Copy link
Member

For example, on 05bc701 (ancestor of BBJ_NONE removal commit), the following program

I see, so essentially 05bc701 added the extra jmp that is mentioned in #96998.

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

@kunalspathak
Copy link
Member

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 jmp in certain scenarios. It should only emit align NOP. Of course, it comes with tracking if we should emit jump or not. I think the easier thing would be to perform this only if the alignment is in an expensive block. Figuring out the alignment bytes happen after the decision of jump removal, so we cannot rely on that (number of alignment bytes) to decide whether to eliminate jump or not.

@jakobbotsch
Copy link
Member

emitting alignment shouldn't add logic of emitting jmp in certain scenarios

Why not? I think emitOutputNOP should emit the most efficient nop of a specified size. If that includes a jump at the beginning, then that's what it should be emitting. FWIW, emitOutputNOP currently only seems to be emitting at most 2 instructions, and most cases emit only 1 instruction, so I question that we should even be adding a jump. Maybe we should check if the optimization manuals recommend a jump for these multi-byte nops.

@kunalspathak
Copy link
Member

If that includes a jump at the beginning, then that's what it should be emitting

So, are you suggesting to always have a jmp that short circuits the align or at least based on the alignment padding (if they are >= 2)? I am not sure the impact of having those on jump table and should carefully evaluate before making any decision.

Maybe we should check if the optimization manuals recommend a jump for these multi-byte nops.

+1

@kunalspathak
Copy link
Member

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 jmp + nop as a separate issue.

@amanasifkhalid
Copy link
Member Author

amanasifkhalid commented Jan 16, 2024

Is there an easy way to check the diffs between 05bc701 and this PR?

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?

@jakobbotsch
Copy link
Member

So, are you suggesting to always have a jmp that short circuits the align or at least based on the alignment padding (if they are >= 2)? I am not sure the impact of having those on jump table and should carefully evaluate before making any decision.

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, [align 12 bytes] would be the same as b loop; [align 8 bytes] if we think that's more efficient.

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.

@amanasifkhalid
Copy link
Member Author

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.

@kunalspathak
Copy link
Member

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.

I would stick to that then.

@kunalspathak
Copy link
Member

kunalspathak commented Jan 16, 2024

I wonder if this change will regress any benchmarks if we merge it as-is

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 align is a separate discussion (as i pointed above).

@amanasifkhalid
Copy link
Member Author

If the diffs I asked above are not significant, I would say we can merge this change

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 BBJ_NONE):

G_M6203_IG01:  ;; offset=0x0000
       push     rbx
       sub      rsp, 32
       mov      rbx, rcx
						;; size=8 bbWeight=1 PerfScore 1.50
G_M6203_IG02:  ;; offset=0x0008
       mov      rcx, 0x27A800091F8      ; 'abc'

       call     [System.Console:WriteLine(System.String)]
       inc      dword ptr [rbx]
       jmp      SHORT G_M6203_IG03
       align    [4 bytes for IG03]
						;; size=24 bbWeight=1 PerfScore 8.25
G_M6203_IG03:  ;; offset=0x0020
       mov      eax, dword ptr [rbx]
       add      eax, eax
       mov      dword ptr [rbx], eax
       jmp      SHORT G_M6203_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=a9b4e7c4) for method Test:Foo(byref) (FullOpts)
; ============================================================

With these changes, we return to the behavior of 05bc701, the ancestor to BBJ_NONE removal:

G_M6203_IG01:  ;; offset=0x0000
       push     rbx
       sub      rsp, 32
       mov      rbx, rcx
						;; size=8 bbWeight=1 PerfScore 1.50
G_M6203_IG02:  ;; offset=0x0008
       mov      rcx, 0x1D7801091F8      ; 'abc'

       call     [System.Console:WriteLine(System.String)]
       inc      dword ptr [rbx]
       align    [6 bytes for IG03]
						;; size=24 bbWeight=1 PerfScore 6.50
G_M6203_IG03:  ;; offset=0x0020
       mov      eax, dword ptr [rbx]
       add      eax, eax
       mov      dword ptr [rbx], eax
       jmp      SHORT G_M6203_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=a9b4e7c4) for method Test:Foo(byref) (FullOpts)
; ============================================================

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 (BBJ_NONE removal) changed our alignment placement decisions quite a bit, but #95999 returned this behavior to what it was before BBJ_NONE removal when explicitly looking for a BBJ_ALWAYS to place alignment at the end of. After that PR, we'd still see diffs when deciding to align at the block right before the loop if that block has a removable jump:

  • Before BBJ_NONE removal, we'd expect all BBJ_ALWAYS with removable jumps to have been converted to BBJ_NONE by the time we do loop alignment in FullOpts, (Compiler::optOptimizeLayout should have taken care of this). So in cases like the above method, we'd fall through the alignment.
  • After BBJ_NONE removal, the jump removal optimization would skip BBJ_ALWAYS blocks with alignment to avoid falling through the padding (to satisfy JitStress). After JIT: Remove BBF_NONE_QUIRK check in loop alignment #95999, when looking for a jump to place alignment behind, we don't consider removable jumps, so those jumps are now optimized away. But if we take the fallback approach of always aligning at the block before the loop, that would block the peephole optimization from removing that jump. In cases like the above method, we'd jump over the alignment padding.
  • Now with these changes, we don't try to align after removable jumps, and if our fallback approach happens to place alignment after a removable jump, we just fall through the alignment anyway. This resembles the BBJ_NONE behavior above.

Because of this, I think most of the diffs with main I posted here are a return to the pre-BBJ_NONE removal behavior. I wonder if we can try to hide alignment behind more jump types (like BBJ_CALLFINALLYRET that isn't to the next block, BBJ_COND with no fall through into its true/false target, etc.) to avoid falling through the alignment code -- @kunalspathak would this be helpful?

@kunalspathak
Copy link
Member

One option would be continue hiding the align behind jump if the block where align is being placed will execute more than once (can find out by bbWeight)

Can you remove the jmp only if the block that contains align is in a nested loop? That way we will know how many occurrences we have of this scenario and decide what to do about it. Also, feel free to enable diffs with loop alignment so we can see the diff results, rather than doing it locally. you can revert that change before merging.

@amanasifkhalid amanasifkhalid added the NO-MERGE The PR is not ready for merge yet (see discussion for detailed reasons) label Jan 17, 2024
Comment on lines 5435 to 5440
// 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);
}
Copy link
Member

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.

Copy link
Member Author

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?

Copy link
Member

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

Copy link
Member

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?

Copy link
Member

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.

Copy link
Member Author

@amanasifkhalid amanasifkhalid Jan 17, 2024

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

Copy link
Member

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.

@amanasifkhalid
Copy link
Member Author

Diffs

@@ -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),
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please add a comment

Copy link
Member Author

@amanasifkhalid amanasifkhalid Jan 17, 2024

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

@@ -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
Copy link
Member

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

@jakobbotsch
Copy link
Member

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.

@tannergooding
Copy link
Member

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.

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 (0x90, which is xchg eax, eax) is guaranteed to have hardware support. Likewise, using more than 3x prefix bytes can cause a significant decoding slowdown even on the latest hardware. Likewise while many of these instructions do not modify machine state, they may still take up micro-ops and execution port resources and may not be fully elided.

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.

@jakobbotsch
Copy link
Member

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 emitOutputNOP should be the one to make the decision around this when a multi-byte nop is requested.

@kunalspathak
Copy link
Member

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.

I agree as I mentioned in #97011 (comment) and let's keep an eye on regressions. if any.

This reverts commit 188f2b2.
@amanasifkhalid amanasifkhalid removed the NO-MERGE The PR is not ready for merge yet (see discussion for detailed reasons) label Feb 2, 2024
@amanasifkhalid
Copy link
Member Author

Sounds good. @jakobbotsch @kunalspathak can I get a quick sign-off from one of you for the revert commit, please? Thanks!

@amanasifkhalid
Copy link
Member Author

Diffs with JitAlignLoops=1 (win-x64):
Diffs are based on 2,101,325 contexts (931,440 MinOpts, 1,169,885 FullOpts).

MISSED contexts: 125 (0.01%)

Overall (-22,659 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.windows.x64.checked.mch 8,755,441 -1,347
benchmarks.run_pgo.windows.x64.checked.mch 34,793,852 -2,530
benchmarks.run_tiered.windows.x64.checked.mch 12,622,568 -872
coreclr_tests.run.windows.x64.checked.mch 393,059,509 -7,001
libraries.pmi.windows.x64.checked.mch 61,638,540 -2,823
libraries_tests.run.windows.x64.Release.mch 278,391,565 -4,055
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch 137,439,364 -2,701
realworld.run.windows.x64.checked.mch 14,145,036 -1,330
FullOpts (-22,659 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.windows.x64.checked.mch 8,755,078 -1,347
benchmarks.run_pgo.windows.x64.checked.mch 21,004,982 -2,530
benchmarks.run_tiered.windows.x64.checked.mch 3,519,482 -872
coreclr_tests.run.windows.x64.checked.mch 120,305,584 -7,001
libraries.pmi.windows.x64.checked.mch 61,525,019 -2,823
libraries_tests.run.windows.x64.Release.mch 103,360,984 -4,055
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch 126,598,753 -2,701
realworld.run.windows.x64.checked.mch 13,758,427 -1,330
Example diffs
benchmarks.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:
Details

Improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes)
benchmarks.run.windows.x64.checked.mch 465 299 8 158 -1,386 +39
benchmarks.run_pgo.windows.x64.checked.mch 730 528 0 202 -2,530 +0
benchmarks.run_tiered.windows.x64.checked.mch 235 162 4 69 -896 +24
coreclr_tests.run.windows.x64.checked.mch 2,388 1,549 17 822 -7,071 +70
libraries.crossgen2.windows.x64.checked.mch 0 0 0 0 -0 +0
libraries.pmi.windows.x64.checked.mch 1,061 708 12 341 -2,869 +46
libraries_tests.run.windows.x64.Release.mch 1,471 920 21 530 -4,136 +81
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch 1,160 746 6 408 -2,725 +24
realworld.run.windows.x64.checked.mch 501 297 7 197 -1,360 +30
smoke_tests.nativeaot.windows.x64.checked.mch 0 0 0 0 -0 +0
8,011 5,209 75 2,727 -22,973 +314

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
benchmarks.run.windows.x64.checked.mch 28,083 4 28,079 0 (0.00%) 0 (0.00%)
benchmarks.run_pgo.windows.x64.checked.mch 99,968 49,362 50,606 19 (0.02%) 19 (0.02%)
benchmarks.run_tiered.windows.x64.checked.mch 54,405 36,887 17,518 0 (0.00%) 0 (0.00%)
coreclr_tests.run.windows.x64.checked.mch 574,374 341,373 233,001 16 (0.00%) 16 (0.00%)
libraries.crossgen2.windows.x64.checked.mch 2,093 0 2,093 0 (0.00%) 0 (0.00%)
libraries.pmi.windows.x64.checked.mch 308,968 6 308,962 1 (0.00%) 1 (0.00%)
libraries_tests.run.windows.x64.Release.mch 676,239 481,881 194,358 89 (0.01%) 89 (0.01%)
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch 320,452 21,924 298,528 0 (0.00%) 0 (0.00%)
realworld.run.windows.x64.checked.mch 36,672 3 36,669 0 (0.00%) 0 (0.00%)
smoke_tests.nativeaot.windows.x64.checked.mch 71 0 71 0 (0.00%) 0 (0.00%)
2,101,325 931,440 1,169,885 125 (0.01%) 125 (0.01%)

jit-analyze output

@amanasifkhalid
Copy link
Member Author

Diffs with JitAlignLoops=1 (win-arm64):
Diffs are based on 2,340,752 contexts (938,449 MinOpts, 1,402,303 FullOpts).

MISSED contexts: 365 (0.02%)

Overall (-66,776 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch 10,973,208 -3,396
benchmarks.run_pgo.windows.arm64.checked.mch 45,586,336 -5,612
benchmarks.run_tiered.windows.arm64.checked.mch 15,591,556 -2,160
coreclr_tests.run.windows.arm64.checked.mch 495,313,736 -24,568
libraries.crossgen2.windows.arm64.checked.mch 59,069,640 +0
libraries.pmi.windows.arm64.checked.mch 79,864,520 -7,060
libraries_tests.run.windows.arm64.Release.mch 330,837,648 -11,384
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch 171,598,788 -8,224
realworld.run.windows.arm64.checked.mch 15,912,220 -2,868
smoke_tests.nativeaot.windows.arm64.checked.mch 3,804,364 -1,504
MinOpts (+0 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch 536 +0
benchmarks.run_pgo.windows.arm64.checked.mch 16,011,396 +0
benchmarks.run_tiered.windows.arm64.checked.mch 11,177,188 +0
coreclr_tests.run.windows.arm64.checked.mch 338,689,152 +0
libraries.crossgen2.windows.arm64.checked.mch 1,636 +0
libraries.pmi.windows.arm64.checked.mch 119,984 +0
libraries_tests.run.windows.arm64.Release.mch 203,433,596 +0
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch 13,153,748 +0
realworld.run.windows.arm64.checked.mch 563,980 +0
smoke_tests.nativeaot.windows.arm64.checked.mch 1,012 +0
FullOpts (-66,776 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch 10,972,672 -3,396
benchmarks.run_pgo.windows.arm64.checked.mch 29,574,940 -5,612
benchmarks.run_tiered.windows.arm64.checked.mch 4,414,368 -2,160
coreclr_tests.run.windows.arm64.checked.mch 156,624,584 -24,568
libraries.crossgen2.windows.arm64.checked.mch 59,068,004 +0
libraries.pmi.windows.arm64.checked.mch 79,744,536 -7,060
libraries_tests.run.windows.arm64.Release.mch 127,404,052 -11,384
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch 158,445,040 -8,224
realworld.run.windows.arm64.checked.mch 15,348,240 -2,868
smoke_tests.nativeaot.windows.arm64.checked.mch 3,803,352 -1,504
Example diffs
benchmarks.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?

Details

Improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes)
benchmarks.run.windows.arm64.checked.mch 23,276 455 0 22,821 -3,396 +0
benchmarks.run_pgo.windows.arm64.checked.mch 90,202 756 0 89,446 -5,612 +0
benchmarks.run_tiered.windows.arm64.checked.mch 44,511 245 0 44,266 -2,160 +0
coreclr_tests.run.windows.arm64.checked.mch 565,530 3,984 0 561,546 -24,568 +0
libraries.crossgen2.windows.arm64.checked.mch 226,602 0 0 226,602 -0 +0
libraries.pmi.windows.arm64.checked.mch 277,224 1,130 0 276,094 -7,060 +0
libraries_tests.run.windows.arm64.Release.mch 614,067 1,946 0 612,121 -11,384 +0
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch 299,547 1,273 0 298,274 -8,224 +0
realworld.run.windows.arm64.checked.mch 30,545 379 0 30,166 -2,868 +0
smoke_tests.nativeaot.windows.arm64.checked.mch 20,414 266 0 20,148 -1,504 +0
2,191,918 10,434 0 2,181,484 -66,776 +0

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
benchmarks.run.windows.arm64.checked.mch 24,446 4 24,442 0 (0.00%) 0 (0.00%)
benchmarks.run_pgo.windows.arm64.checked.mch 96,121 48,079 48,042 0 (0.00%) 0 (0.00%)
benchmarks.run_tiered.windows.arm64.checked.mch 49,360 36,713 12,647 0 (0.00%) 0 (0.00%)
coreclr_tests.run.windows.arm64.checked.mch 595,378 362,592 232,786 26 (0.00%) 26 (0.00%)
libraries.crossgen2.windows.arm64.checked.mch 244,149 15 244,134 3 (0.00%) 3 (0.00%)
libraries.pmi.windows.arm64.checked.mch 305,575 6 305,569 3 (0.00%) 3 (0.00%)
libraries_tests.run.windows.arm64.Release.mch 651,606 469,431 182,175 0 (0.00%) 0 (0.00%)
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch 317,077 21,598 295,479 0 (0.00%) 0 (0.00%)
realworld.run.windows.arm64.checked.mch 33,211 3 33,208 0 (0.00%) 0 (0.00%)
smoke_tests.nativeaot.windows.arm64.checked.mch 23,829 8 23,821 333 (1.38%) 333 (1.38%)
2,340,752 938,449 1,402,303 365 (0.02%) 365 (0.02%)

jit-analyze output

@amanasifkhalid amanasifkhalid merged commit cf79806 into dotnet:main Feb 2, 2024
96 of 129 checks passed
@amanasifkhalid amanasifkhalid deleted the fix-align branch February 2, 2024 17:00
@ryujit-bot
Copy link

Diff results for #97011

Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Overall (-0.01% to -0.00%)
Collection PDIFF
benchmarks.run.linux.arm64.checked.mch -0.01%
benchmarks.run_pgo.linux.arm64.checked.mch -0.01%
benchmarks.run_tiered.linux.arm64.checked.mch -0.01%
coreclr_tests.run.linux.arm64.checked.mch -0.01%
libraries.pmi.linux.arm64.checked.mch -0.01%
libraries_tests.run.linux.arm64.Release.mch -0.01%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch -0.01%
realworld.run.linux.arm64.checked.mch -0.01%
smoke_tests.nativeaot.linux.arm64.checked.mch -0.01%
MinOpts (-0.02% to -0.00%)
Collection PDIFF
benchmarks.run.linux.arm64.checked.mch -0.01%
benchmarks.run_pgo.linux.arm64.checked.mch -0.01%
benchmarks.run_tiered.linux.arm64.checked.mch -0.01%
coreclr_tests.run.linux.arm64.checked.mch -0.01%
libraries.crossgen2.linux.arm64.checked.mch -0.01%
libraries_tests.run.linux.arm64.Release.mch -0.01%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch -0.02%
realworld.run.linux.arm64.checked.mch -0.01%
FullOpts (-0.01% to -0.00%)
Collection PDIFF
benchmarks.run.linux.arm64.checked.mch -0.01%
benchmarks.run_pgo.linux.arm64.checked.mch -0.01%
benchmarks.run_tiered.linux.arm64.checked.mch -0.01%
coreclr_tests.run.linux.arm64.checked.mch -0.01%
libraries.pmi.linux.arm64.checked.mch -0.01%
libraries_tests.run.linux.arm64.Release.mch -0.01%
realworld.run.linux.arm64.checked.mch -0.01%
smoke_tests.nativeaot.linux.arm64.checked.mch -0.01%

Throughput diffs for linux/x64 ran on windows/x64

Overall (-0.01%)
Collection PDIFF
benchmarks.run.linux.x64.checked.mch -0.01%
benchmarks.run_pgo.linux.x64.checked.mch -0.01%
benchmarks.run_tiered.linux.x64.checked.mch -0.01%
coreclr_tests.run.linux.x64.checked.mch -0.01%
libraries.crossgen2.linux.x64.checked.mch -0.01%
libraries.pmi.linux.x64.checked.mch -0.01%
libraries_tests.run.linux.x64.Release.mch -0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch -0.01%
realworld.run.linux.x64.checked.mch -0.01%
smoke_tests.nativeaot.linux.x64.checked.mch -0.01%
MinOpts (-0.02% to -0.00%)
Collection PDIFF
benchmarks.run.linux.x64.checked.mch -0.01%
benchmarks.run_pgo.linux.x64.checked.mch -0.01%
benchmarks.run_tiered.linux.x64.checked.mch -0.01%
coreclr_tests.run.linux.x64.checked.mch -0.01%
libraries.crossgen2.linux.x64.checked.mch -0.02%
libraries.pmi.linux.x64.checked.mch -0.01%
libraries_tests.run.linux.x64.Release.mch -0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch -0.02%
realworld.run.linux.x64.checked.mch -0.01%
FullOpts (-0.01%)
Collection PDIFF
benchmarks.run.linux.x64.checked.mch -0.01%
benchmarks.run_pgo.linux.x64.checked.mch -0.01%
benchmarks.run_tiered.linux.x64.checked.mch -0.01%
coreclr_tests.run.linux.x64.checked.mch -0.01%
libraries.crossgen2.linux.x64.checked.mch -0.01%
libraries.pmi.linux.x64.checked.mch -0.01%
libraries_tests.run.linux.x64.Release.mch -0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch -0.01%
realworld.run.linux.x64.checked.mch -0.01%
smoke_tests.nativeaot.linux.x64.checked.mch -0.01%

Throughput diffs for osx/arm64 ran on windows/x64

Overall (-0.01% to -0.00%)
Collection PDIFF
benchmarks.run.osx.arm64.checked.mch -0.01%
benchmarks.run_pgo.osx.arm64.checked.mch -0.01%
benchmarks.run_tiered.osx.arm64.checked.mch -0.01%
coreclr_tests.run.osx.arm64.checked.mch -0.01%
libraries.pmi.osx.arm64.checked.mch -0.01%
libraries_tests.run.osx.arm64.Release.mch -0.01%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch -0.01%
realworld.run.osx.arm64.checked.mch -0.01%
MinOpts (-0.02% to -0.00%)
Collection PDIFF
benchmarks.run.osx.arm64.checked.mch -0.01%
benchmarks.run_pgo.osx.arm64.checked.mch -0.01%
benchmarks.run_tiered.osx.arm64.checked.mch -0.01%
coreclr_tests.run.osx.arm64.checked.mch -0.01%
libraries.crossgen2.osx.arm64.checked.mch -0.01%
libraries_tests.run.osx.arm64.Release.mch -0.01%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch -0.02%
realworld.run.osx.arm64.checked.mch -0.01%
FullOpts (-0.01% to -0.00%)
Collection PDIFF
benchmarks.run.osx.arm64.checked.mch -0.01%
benchmarks.run_pgo.osx.arm64.checked.mch -0.01%
benchmarks.run_tiered.osx.arm64.checked.mch -0.01%
coreclr_tests.run.osx.arm64.checked.mch -0.01%
libraries.pmi.osx.arm64.checked.mch -0.01%
libraries_tests.run.osx.arm64.Release.mch -0.01%
realworld.run.osx.arm64.checked.mch -0.01%

Throughput diffs for windows/arm64 ran on windows/x64

Overall (-0.01% to -0.00%)
Collection PDIFF
benchmarks.run.windows.arm64.checked.mch -0.01%
benchmarks.run_pgo.windows.arm64.checked.mch -0.01%
benchmarks.run_tiered.windows.arm64.checked.mch -0.01%
coreclr_tests.run.windows.arm64.checked.mch -0.01%
libraries.pmi.windows.arm64.checked.mch -0.01%
libraries_tests.run.windows.arm64.Release.mch -0.01%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch -0.01%
realworld.run.windows.arm64.checked.mch -0.01%
smoke_tests.nativeaot.windows.arm64.checked.mch -0.01%
MinOpts (-0.02% to -0.00%)
Collection PDIFF
benchmarks.run.windows.arm64.checked.mch -0.01%
benchmarks.run_pgo.windows.arm64.checked.mch -0.01%
benchmarks.run_tiered.windows.arm64.checked.mch -0.01%
coreclr_tests.run.windows.arm64.checked.mch -0.01%
libraries.crossgen2.windows.arm64.checked.mch -0.01%
libraries_tests.run.windows.arm64.Release.mch -0.01%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch -0.02%
realworld.run.windows.arm64.checked.mch -0.01%
FullOpts (-0.01% to -0.00%)
Collection PDIFF
benchmarks.run.windows.arm64.checked.mch -0.01%
benchmarks.run_pgo.windows.arm64.checked.mch -0.01%
benchmarks.run_tiered.windows.arm64.checked.mch -0.01%
libraries.pmi.windows.arm64.checked.mch -0.01%
libraries_tests.run.windows.arm64.Release.mch -0.01%
realworld.run.windows.arm64.checked.mch -0.01%
smoke_tests.nativeaot.windows.arm64.checked.mch -0.01%

Throughput diffs for windows/x64 ran on windows/x64

Overall (-0.01%)
Collection PDIFF
aspnet.run.windows.x64.checked.mch -0.01%
benchmarks.run.windows.x64.checked.mch -0.01%
benchmarks.run_pgo.windows.x64.checked.mch -0.01%
benchmarks.run_tiered.windows.x64.checked.mch -0.01%
coreclr_tests.run.windows.x64.checked.mch -0.01%
libraries.crossgen2.windows.x64.checked.mch -0.01%
libraries.pmi.windows.x64.checked.mch -0.01%
libraries_tests.run.windows.x64.Release.mch -0.01%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch -0.01%
realworld.run.windows.x64.checked.mch -0.01%
smoke_tests.nativeaot.windows.x64.checked.mch -0.01%
MinOpts (-0.02% to -0.00%)
Collection PDIFF
aspnet.run.windows.x64.checked.mch -0.01%
benchmarks.run.windows.x64.checked.mch -0.01%
benchmarks.run_pgo.windows.x64.checked.mch -0.02%
benchmarks.run_tiered.windows.x64.checked.mch -0.02%
coreclr_tests.run.windows.x64.checked.mch -0.01%
libraries.crossgen2.windows.x64.checked.mch -0.02%
libraries_tests.run.windows.x64.Release.mch -0.01%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch -0.02%
realworld.run.windows.x64.checked.mch -0.01%
smoke_tests.nativeaot.windows.x64.checked.mch -0.01%
FullOpts (-0.01%)
Collection PDIFF
aspnet.run.windows.x64.checked.mch -0.01%
benchmarks.run.windows.x64.checked.mch -0.01%
benchmarks.run_pgo.windows.x64.checked.mch -0.01%
benchmarks.run_tiered.windows.x64.checked.mch -0.01%
coreclr_tests.run.windows.x64.checked.mch -0.01%
libraries.crossgen2.windows.x64.checked.mch -0.01%
libraries.pmi.windows.x64.checked.mch -0.01%
libraries_tests.run.windows.x64.Release.mch -0.01%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch -0.01%
realworld.run.windows.x64.checked.mch -0.01%
smoke_tests.nativeaot.windows.x64.checked.mch -0.01%

Details here


Throughput diffs for windows/x86 ran on linux/x86

Overall (-0.01%)
Collection PDIFF
benchmarks.run.windows.x86.checked.mch -0.01%
benchmarks.run_pgo.windows.x86.checked.mch -0.01%
benchmarks.run_tiered.windows.x86.checked.mch -0.01%
coreclr_tests.run.windows.x86.checked.mch -0.01%
libraries.crossgen2.windows.x86.checked.mch -0.01%
libraries.pmi.windows.x86.checked.mch -0.01%
libraries_tests.run.windows.x86.Release.mch -0.01%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch -0.01%
realworld.run.windows.x86.checked.mch -0.01%
MinOpts (-0.05% to -0.01%)
Collection PDIFF
benchmarks.run.windows.x86.checked.mch -0.01%
benchmarks.run_pgo.windows.x86.checked.mch -0.02%
benchmarks.run_tiered.windows.x86.checked.mch -0.02%
coreclr_tests.run.windows.x86.checked.mch -0.02%
libraries.crossgen2.windows.x86.checked.mch -0.02%
libraries.pmi.windows.x86.checked.mch -0.02%
libraries_tests.run.windows.x86.Release.mch -0.02%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch -0.05%
realworld.run.windows.x86.checked.mch -0.03%
FullOpts (-0.01%)
Collection PDIFF
benchmarks.run.windows.x86.checked.mch -0.01%
benchmarks.run_pgo.windows.x86.checked.mch -0.01%
benchmarks.run_tiered.windows.x86.checked.mch -0.01%
coreclr_tests.run.windows.x86.checked.mch -0.01%
libraries.crossgen2.windows.x86.checked.mch -0.01%
libraries.pmi.windows.x86.checked.mch -0.01%
libraries_tests.run.windows.x86.Release.mch -0.01%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch -0.01%
realworld.run.windows.x86.checked.mch -0.01%

Details here


@ryujit-bot
Copy link

Diff results for #97011

Throughput diffs

Throughput diffs for linux/arm64 ran on linux/x64

Overall (-0.02% to -0.01%)
Collection PDIFF
libraries_tests.run.linux.arm64.Release.mch -0.01%
libraries.pmi.linux.arm64.checked.mch -0.01%
smoke_tests.nativeaot.linux.arm64.checked.mch -0.01%
coreclr_tests.run.linux.arm64.checked.mch -0.01%
benchmarks.run.linux.arm64.checked.mch -0.01%
benchmarks.run_pgo.linux.arm64.checked.mch -0.01%
libraries.crossgen2.linux.arm64.checked.mch -0.01%
realworld.run.linux.arm64.checked.mch -0.01%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch -0.01%
benchmarks.run_tiered.linux.arm64.checked.mch -0.02%
MinOpts (-0.04% to 0.00%)
Collection PDIFF
libraries_tests.run.linux.arm64.Release.mch -0.02%
coreclr_tests.run.linux.arm64.checked.mch -0.02%
benchmarks.run.linux.arm64.checked.mch -0.01%
benchmarks.run_pgo.linux.arm64.checked.mch -0.02%
libraries.crossgen2.linux.arm64.checked.mch -0.02%
realworld.run.linux.arm64.checked.mch -0.01%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch -0.04%
benchmarks.run_tiered.linux.arm64.checked.mch -0.02%
FullOpts (-0.01%)
Collection PDIFF
libraries_tests.run.linux.arm64.Release.mch -0.01%
libraries.pmi.linux.arm64.checked.mch -0.01%
smoke_tests.nativeaot.linux.arm64.checked.mch -0.01%
coreclr_tests.run.linux.arm64.checked.mch -0.01%
benchmarks.run.linux.arm64.checked.mch -0.01%
benchmarks.run_pgo.linux.arm64.checked.mch -0.01%
libraries.crossgen2.linux.arm64.checked.mch -0.01%
realworld.run.linux.arm64.checked.mch -0.01%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch -0.01%
benchmarks.run_tiered.linux.arm64.checked.mch -0.01%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.02% to -0.01%)
Collection PDIFF
libraries.crossgen2.linux.x64.checked.mch -0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch -0.01%
realworld.run.linux.x64.checked.mch -0.01%
libraries.pmi.linux.x64.checked.mch -0.01%
benchmarks.run.linux.x64.checked.mch -0.01%
libraries_tests.run.linux.x64.Release.mch -0.01%
benchmarks.run_pgo.linux.x64.checked.mch -0.01%
coreclr_tests.run.linux.x64.checked.mch -0.01%
smoke_tests.nativeaot.linux.x64.checked.mch -0.01%
benchmarks.run_tiered.linux.x64.checked.mch -0.02%
MinOpts (-0.04% to 0.00%)
Collection PDIFF
libraries.crossgen2.linux.x64.checked.mch -0.02%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch -0.04%
realworld.run.linux.x64.checked.mch -0.01%
benchmarks.run.linux.x64.checked.mch -0.01%
libraries_tests.run.linux.x64.Release.mch -0.02%
benchmarks.run_pgo.linux.x64.checked.mch -0.02%
coreclr_tests.run.linux.x64.checked.mch -0.02%
benchmarks.run_tiered.linux.x64.checked.mch -0.02%
FullOpts (-0.01%)
Collection PDIFF
libraries.crossgen2.linux.x64.checked.mch -0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch -0.01%
realworld.run.linux.x64.checked.mch -0.01%
libraries.pmi.linux.x64.checked.mch -0.01%
benchmarks.run.linux.x64.checked.mch -0.01%
libraries_tests.run.linux.x64.Release.mch -0.01%
benchmarks.run_pgo.linux.x64.checked.mch -0.01%
coreclr_tests.run.linux.x64.checked.mch -0.01%
smoke_tests.nativeaot.linux.x64.checked.mch -0.01%
benchmarks.run_tiered.linux.x64.checked.mch -0.01%

Details here


Throughput diffs for linux/arm ran on windows/x86

Overall (-0.01%)
Collection PDIFF
benchmarks.run.linux.arm.checked.mch -0.01%
benchmarks.run_pgo.linux.arm.checked.mch -0.01%
benchmarks.run_tiered.linux.arm.checked.mch -0.01%
coreclr_tests.run.linux.arm.checked.mch -0.01%
libraries.crossgen2.linux.arm.checked.mch -0.01%
libraries.pmi.linux.arm.checked.mch -0.01%
libraries_tests.run.linux.arm.Release.mch -0.01%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch -0.01%
realworld.run.linux.arm.checked.mch -0.01%
MinOpts (-0.03% to -0.00%)
Collection PDIFF
benchmarks.run_pgo.linux.arm.checked.mch -0.01%
benchmarks.run_tiered.linux.arm.checked.mch -0.01%
coreclr_tests.run.linux.arm.checked.mch -0.01%
libraries.crossgen2.linux.arm.checked.mch -0.01%
libraries.pmi.linux.arm.checked.mch -0.01%
libraries_tests.run.linux.arm.Release.mch -0.01%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch -0.03%
realworld.run.linux.arm.checked.mch -0.02%
FullOpts (-0.01% to -0.00%)
Collection PDIFF
benchmarks.run.linux.arm.checked.mch -0.01%
benchmarks.run_pgo.linux.arm.checked.mch -0.01%
libraries.crossgen2.linux.arm.checked.mch -0.01%
libraries.pmi.linux.arm.checked.mch -0.01%
libraries_tests.run.linux.arm.Release.mch -0.01%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch -0.01%
realworld.run.linux.arm.checked.mch -0.01%

Details here


Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI
Projects
None yet
Development

Successfully merging this pull request may close these issues.

JIT: Extraneous jumps around alignment in some cases after BBJ_NONE removal
6 participants