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: Remove BBF_NONE_QUIRK check in loop alignment #95999

Merged
merged 6 commits into from
Dec 19, 2023

Conversation

amanasifkhalid
Copy link
Member

...or at least what I think are no-diff checks. Part of #95998.

@ghost ghost assigned amanasifkhalid Dec 14, 2023
@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 Dec 14, 2023
@ghost
Copy link

ghost commented Dec 14, 2023

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

Issue Details

...or at least what I think are no-diff checks. Part of #95998.

Author: amanasifkhalid
Assignees: amanasifkhalid
Labels:

area-CodeGen-coreclr

Milestone: -

@amanasifkhalid amanasifkhalid marked this pull request as ready for review December 14, 2023 12:42
@amanasifkhalid
Copy link
Member Author

amanasifkhalid commented Dec 14, 2023

cc @dotnet/jit-contrib. No diffs. I noticed opts.compJitHideAlignBehindJmp is set by an env var and (probably) isn't tested in runtime-coreclr superpmi-diffs; testing this out locally...

@amanasifkhalid
Copy link
Member Author

I don't see any diffs locally with DOTNET_JitHideAlignBehindJmp=1 set or when diffing with Release builds (where the feature is enabled by default), so I think these usages of BBF_NONE_QUIRK are benign.

@jakobbotsch
Copy link
Member

We disable loop alignment completely when running superpmi.py asmdiffs, so you'll need to comment that in superpmi.py to see any impact on loop alignment.

@amanasifkhalid
Copy link
Member Author

amanasifkhalid commented Dec 14, 2023

Ah thank you @jakobbotsch, now I'm seeing diffs. Just removing the BBF_NONE_QUIRK check during loop alignment results in net regressions. Replacing it with a restriction that the block does not jump to the next block results in a net size improvement. Since this phase runs after the block layout is finalized, I think we can depend on BBJ_ALWAYS blocks that jump to the next block to be functionally equivalent to BBJ_NONE (i.e. the jump will likely be removed, so this isn't a good candidate to place align instructions in). Here are the diffs on win-x64:

MISSED contexts: 3,959 (0.17%)

Overall (-1,016 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.windows.x64.checked.mch 8,564,985 -24
benchmarks.run_pgo.windows.x64.checked.mch 34,101,547 -254
benchmarks.run_tiered.windows.x64.checked.mch 12,372,246 -105
coreclr_tests.run.windows.x64.checked.mch 386,394,190 -204
libraries.pmi.windows.x64.checked.mch 59,676,611 -82
libraries_tests.run.windows.x64.Release.mch 282,042,681 -333
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch 131,701,633 -5
realworld.run.windows.x64.checked.mch 13,966,404 -61
smoke_tests.nativeaot.windows.x64.checked.mch 5,004,604 +52
FullOpts (-1,016 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.windows.x64.checked.mch 8,564,624 -24
benchmarks.run_pgo.windows.x64.checked.mch 20,175,137 -254
benchmarks.run_tiered.windows.x64.checked.mch 3,132,878 -105
coreclr_tests.run.windows.x64.checked.mch 114,987,873 -204
libraries.pmi.windows.x64.checked.mch 59,563,092 -82
libraries_tests.run.windows.x64.Release.mch 107,411,553 -333
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch 121,339,357 -5
realworld.run.windows.x64.checked.mch 13,576,699 -61
smoke_tests.nativeaot.windows.x64.checked.mch 5,003,695 +52

and on win-arm64:

MISSED contexts: 3,791 (0.16%)

Overall (-2,972 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch 10,761,380 -136
benchmarks.run_pgo.windows.arm64.checked.mch 30,899,292 -464
benchmarks.run_tiered.windows.arm64.checked.mch 15,038,184 -192
coreclr_tests.run.windows.arm64.checked.mch 495,252,524 -400
libraries.crossgen2.windows.arm64.checked.mch 58,744,736 +0
libraries.pmi.windows.arm64.checked.mch 77,565,144 -252
libraries_tests.run.windows.arm64.Release.mch 299,635,492 -964
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch 166,461,060 -284
realworld.run.windows.arm64.checked.mch 15,636,744 -260
smoke_tests.nativeaot.windows.arm64.checked.mch 3,924,148 -20
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 15,822,836 +0
benchmarks.run_tiered.windows.arm64.checked.mch 11,271,812 +0
coreclr_tests.run.windows.arm64.checked.mch 343,982,572 +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 199,214,204 +0
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch 13,083,388 +0
realworld.run.windows.arm64.checked.mch 568,424 +0
smoke_tests.nativeaot.windows.arm64.checked.mch 972 +0
FullOpts (-2,972 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch 10,760,844 -136
benchmarks.run_pgo.windows.arm64.checked.mch 15,076,456 -464
benchmarks.run_tiered.windows.arm64.checked.mch 3,766,372 -192
coreclr_tests.run.windows.arm64.checked.mch 151,269,952 -400
libraries.crossgen2.windows.arm64.checked.mch 58,743,100 +0
libraries.pmi.windows.arm64.checked.mch 77,445,160 -252
libraries_tests.run.windows.arm64.Release.mch 100,421,288 -964
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch 153,377,672 -284
realworld.run.windows.arm64.checked.mch 15,068,320 -260
smoke_tests.nativeaot.windows.arm64.checked.mch 3,923,176 -20

@jakobbotsch
Copy link
Member

FWIW, the diffs will be easier to read if you post them without the code blocks or as a gist.

Note that the size estimate is not an indicator of performance for loop alignment. It makes more sense to evaluate the logic and look at some examples to figure out whether we should insert alignment in those new places or not. But I do agree that it makes logical sense to skip this case since the entire point here is to try to place the alignment where there is going to be a jump anyway, and in this case there won't be one.

@amanasifkhalid
Copy link
Member Author

FWIW, the diffs will be easier to read if you post them without the code blocks or as a gist.

Ah sorry about that, I removed the code blocks above (I didn't realize GitHub would render the dropdowns that nicely).

It makes more sense to evaluate the logic and look at some examples to figure out whether we should insert alignment in those new places or not.

I'll post the example diffs below in separate comments -- they're too long for me to fit them in one comment.

@amanasifkhalid
Copy link
Member Author

win-x64:

Diffs are based on 2,370,822 contexts (927,356 MinOpts, 1,443,466 FullOpts).

MISSED contexts: 3,959 (0.17%)

Overall (-1,016 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.windows.x64.checked.mch 8,564,985 -24
benchmarks.run_pgo.windows.x64.checked.mch 34,101,547 -254
benchmarks.run_tiered.windows.x64.checked.mch 12,372,246 -105
coreclr_tests.run.windows.x64.checked.mch 386,394,190 -204
libraries.pmi.windows.x64.checked.mch 59,676,611 -82
libraries_tests.run.windows.x64.Release.mch 282,042,681 -333
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch 131,701,633 -5
realworld.run.windows.x64.checked.mch 13,966,404 -61
smoke_tests.nativeaot.windows.x64.checked.mch 5,004,604 +52
FullOpts (-1,016 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.windows.x64.checked.mch 8,564,624 -24
benchmarks.run_pgo.windows.x64.checked.mch 20,175,137 -254
benchmarks.run_tiered.windows.x64.checked.mch 3,132,878 -105
coreclr_tests.run.windows.x64.checked.mch 114,987,873 -204
libraries.pmi.windows.x64.checked.mch 59,563,092 -82
libraries_tests.run.windows.x64.Release.mch 107,411,553 -333
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch 121,339,357 -5
realworld.run.windows.x64.checked.mch 13,576,699 -61
smoke_tests.nativeaot.windows.x64.checked.mch 5,003,695 +52
Example diffs
benchmarks.run.windows.x64.checked.mch
-16 (-2.56%) : 18719.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:EnsureNullableAttributeExists(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.Symbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder) (FullOpts)
@@ -208,6 +208,7 @@ G_M54037_IG11:        ; bbWeight=2, gcrefRegs=50C8 {rbx rsi rdi r12 r14}, byrefR
        ; gcrRegs -[rax]
        test     rsi, rsi
        je       SHORT G_M54037_IG14
+		  ;; NOP compensation instructions of 4 bytes.
        mov      ecx, dword ptr [rsi+0x120]
        mov      rdx, gword ptr [rsi+0xA8]
        ; gcrRegs +[rdx]
@@ -232,7 +233,7 @@ G_M54037_IG11:        ; bbWeight=2, gcrefRegs=50C8 {rbx rsi rdi r12 r14}, byrefR
        lea      rcx, bword ptr [rsi+0x120]
        ; byrRegs +[rcx]
        jmp      SHORT G_M54037_IG12
-       align    [8 bytes for IG12]
+       align    [4 bytes for IG12]
 						;; size=90 bbWeight=2 PerfScore 37.00
 G_M54037_IG12:        ; bbWeight=16, gcrefRegs=40C8 {rbx rsi rdi r14}, byrefRegs=0002 {rcx}, loop=IG12, byref, isz
        mov      eax, dword ptr [rcx]
@@ -249,8 +250,9 @@ G_M54037_IG12:        ; bbWeight=16, gcrefRegs=40C8 {rbx rsi rdi r14}, byrefRegs
 G_M54037_IG13:        ; bbWeight=2, gcrefRegs=40C8 {rbx rsi rdi r14}, byrefRegs=0000 {}, byref, isz
        ; byrRegs -[rcx]
        jmp      SHORT G_M54037_IG17
+       align    [0 bytes for IG15]
 						;; size=2 bbWeight=2 PerfScore 4.00
-G_M54037_IG14:        ; bbWeight=2, gcrefRegs=50C8 {rbx rsi rdi r12 r14}, byrefRegs=0000 {}, byref, isz, align
+G_M54037_IG14:        ; bbWeight=2, gcrefRegs=50C8 {rbx rsi rdi r12 r14}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[r12]
        mov      rcx, r12
        ; gcrRegs +[rcx]
@@ -278,9 +280,7 @@ G_M54037_IG14:        ; bbWeight=2, gcrefRegs=50C8 {rbx rsi rdi r12 r14}, byrefR
        je       SHORT G_M54037_IG16
        lea      rdx, bword ptr [rbx+0x16C]
        ; byrRegs +[rdx]
-       jmp      SHORT G_M54037_IG15
-       align    [14 bytes for IG15]
-						;; size=71 bbWeight=2 PerfScore 35.00
+						;; size=55 bbWeight=2 PerfScore 31.00
 G_M54037_IG15:        ; bbWeight=16, gcrefRegs=40C8 {rbx rsi rdi r14}, byrefRegs=0004 {rdx}, loop=IG15, byref, isz
        mov      eax, dword ptr [rdx]
        mov      dword ptr [rbp-0x58], eax
@@ -321,7 +321,7 @@ G_M54037_IG18:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        ret      
 						;; size=20 bbWeight=1 PerfScore 5.25
 
-; Total bytes of code 625, prolog size 68, PerfScore 1179.08, instruction count 157, allocated bytes for code 625 (MethodHash=4a2a2cea) for method Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:EnsureNullableAttributeExists(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.Symbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder) (FullOpts)
+; Total bytes of code 609, prolog size 68, PerfScore 1173.48, instruction count 156, allocated bytes for code 609 (MethodHash=4a2a2cea) for method Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:EnsureNullableAttributeExists(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.Symbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder) (FullOpts)
 ; ============================================================
 
 Unwind Info:
-8 (-1.99%) : 18583.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:LazyMethodChecks():this (FullOpts)
@@ -93,12 +93,12 @@ G_M360_IG06:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0004 {rdx}, loop=
        mov      r8d, eax
        or       r8d, 0x2000
        cmp      r8d, eax
-       je       G_M360_IG13
+       je       SHORT G_M360_IG13
        lock     
        cmpxchg  dword ptr [rdx], r8d
        cmp      eax, dword ptr [rbp-0x14]
        jne      SHORT G_M360_IG06
-						;; size=34 bbWeight=4 PerfScore 103.00
+						;; size=30 bbWeight=4 PerfScore 103.00
 G_M360_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        ; byrRegs -[rdx]
        mov      rax, 0xD1FFAB1E      ; const ptr
@@ -110,6 +110,7 @@ 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
 G_M360_IG08:        ; bbWeight=0, gcVars=0000000000000800 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[rax]
@@ -139,15 +140,13 @@ G_M360_IG09:        ; bbWeight=0.50, gcVars=0000000000000940 {V00 V01 V03}, gcre
        ; gcr arg pop 0
        nop      
 						;; size=31 bbWeight=0.50 PerfScore 6.75
-G_M360_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz, align
+G_M360_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      rcx, gword ptr [rbp+0x10]
        ; gcrRegs +[rcx]
        add      rcx, 108
        ; gcrRegs -[rcx]
        ; byrRegs +[rcx]
-       jmp      SHORT G_M360_IG11
-       align    [2 bytes for IG11]
-						;; size=12 bbWeight=0.50 PerfScore 1.62
+						;; size=8 bbWeight=0.50 PerfScore 0.62
 G_M360_IG11:        ; bbWeight=4, gcVars=0000000000000900 {V01 V03}, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, loop=IG11, gcvars, byref, isz
        ; GC ptr vars -{V00 V06 V08}
        mov      eax, dword ptr [rcx]
@@ -266,7 +265,7 @@ G_M360_IG24:        ; bbWeight=0, funclet epilog, nogc, extend
        ret      
 						;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 403, prolog size 25, PerfScore 289.05, instruction count 126, allocated bytes for code 403 (MethodHash=9b5bfe97) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:LazyMethodChecks():this (FullOpts)
+; 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)
 ; ============================================================
 
 Unwind Info:
-8 (-1.91%) : 6915.dasm - System.Text.RegularExpressions.RegexCharClass:CharInCategory(ushort,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
@@ -114,6 +114,7 @@ G_M23943_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx},
        ; gcr arg pop 0
        mov      ebp, eax
        jmp      SHORT G_M23943_IG05
+       align    [0 bytes for IG08]
 						;; size=12 bbWeight=0.50 PerfScore 2.75
 G_M23943_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
        mov      ecx, edi
@@ -149,9 +150,7 @@ G_M23943_IG07:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byr
        test     ecx, ecx
        jle      SHORT G_M23943_IG10
        xor      eax, eax
-       jmp      SHORT G_M23943_IG08
-       align    [0 bytes for IG08]
-						;; size=36 bbWeight=2 PerfScore 16.00
+						;; size=34 bbWeight=2 PerfScore 12.00
 G_M23943_IG08:        ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, loop=IG08, byref, isz
        dec      ecx
        cmp      ebp, ecx
@@ -168,10 +167,10 @@ G_M23943_IG08:        ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, lo
        test     ecx, ecx
        jne      SHORT G_M23943_IG08
 						;; size=42 bbWeight=16 PerfScore 120.00
-G_M23943_IG09:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz, align
+G_M23943_IG09:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
        jmp      SHORT G_M23943_IG12
-       align    [6 bytes for IG11]
-						;; size=8 bbWeight=2 PerfScore 4.00
+       align    [0 bytes for IG11]
+						;; size=2 bbWeight=2 PerfScore 4.00
 G_M23943_IG10:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
        mov      eax, 1
 						;; size=5 bbWeight=2 PerfScore 0.50
@@ -311,7 +310,7 @@ G_M23943_IG30:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 419, prolog size 12, PerfScore 414.28, instruction count 139, allocated bytes for code 419 (MethodHash=60c4a278) for method System.Text.RegularExpressions.RegexCharClass:CharInCategory(ushort,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
+; Total bytes of code 411, prolog size 12, PerfScore 409.48, instruction count 138, allocated bytes for code 411 (MethodHash=60c4a278) for method System.Text.RegularExpressions.RegexCharClass:CharInCategory(ushort,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
 ; ============================================================
 
 Unwind Info:
+11 (+0.72%) : 14601.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
@@ -240,7 +240,7 @@ G_M14182_IG07:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
 						;; size=15 bbWeight=0.50 PerfScore 3.62
-G_M14182_IG08:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M14182_IG08:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        mov      r9, gword ptr [rbx+0x20]
        ; gcrRegs +[r9]
        mov      ecx, dword ptr [rbx+0x58]
@@ -261,6 +261,7 @@ G_M14182_IG08:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
        jmp      G_M14182_IG27
+       align    [0 bytes for IG11]
 						;; size=62 bbWeight=0.50 PerfScore 10.62
 G_M14182_IG09:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp}, byref, isz
        ; byrRegs +[rbp]
@@ -284,7 +285,6 @@ G_M14182_IG10:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=8020 {rbp
        sub      edx, dword ptr [rbx+0x58]
        cmp      edx, r13d
        jle      SHORT G_M14182_IG12
-       align    [0 bytes for IG11]
 						;; size=15 bbWeight=0.50 PerfScore 4.12
 G_M14182_IG11:        ; bbWeight=4, gcrefRegs=000A {rcx rbx}, byrefRegs=8020 {rbp r15}, loop=IG11, byref, isz
        mov      rdx, rcx
@@ -366,7 +366,7 @@ G_M14182_IG14:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
 						;; size=15 bbWeight=0.50 PerfScore 3.62
-G_M14182_IG15:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M14182_IG15:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz, align
        mov      r9, gword ptr [rbx+0x20]
        ; gcrRegs +[r9]
        mov      ecx, dword ptr [rbx+0x58]
@@ -387,7 +387,8 @@ G_M14182_IG15:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
        jmp      G_M14182_IG27
-						;; size=62 bbWeight=0.50 PerfScore 10.62
+       align    [4 bytes for IG18]
+						;; size=66 bbWeight=0.50 PerfScore 10.62
 G_M14182_IG16:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp}, byref, isz
        ; byrRegs +[rbp]
        mov      r15, rbp
@@ -403,15 +404,14 @@ G_M14182_IG16:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
 						;; size=30 bbWeight=0.50 PerfScore 2.62
-G_M14182_IG17:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=8020 {rbp r15}, byref, isz, align
+G_M14182_IG17:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=8020 {rbp r15}, byref, isz
        mov      rcx, gword ptr [rbx+0x20]
        ; gcrRegs +[rcx]
        mov      eax, dword ptr [rcx+0x08]
        sub      eax, dword ptr [rbx+0x58]
        cmp      eax, r13d
        jle      SHORT G_M14182_IG19
-       align    [4 bytes for IG18]
-						;; size=19 bbWeight=0.50 PerfScore 4.25
+						;; size=15 bbWeight=0.50 PerfScore 4.12
 G_M14182_IG18:        ; bbWeight=4, gcrefRegs=000A {rcx rbx}, byrefRegs=8020 {rbp r15}, loop=IG18, byref, isz
        mov      rax, rcx
        ; gcrRegs +[rax]
@@ -459,7 +459,7 @@ G_M14182_IG19:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=8020 {rbp
        movzx    rcx, word  ptr [r15+0x08]
        add      ecx, -49
        cmp      ecx, 0x1EDC
-       jae      SHORT G_M14182_IG22
+       jae      G_M14182_IG22
        lea      r14d, [rdi+0x05]
        cmp      r14d, esi
        ja       G_M14182_IG36
@@ -476,7 +476,7 @@ G_M14182_IG19:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=8020 {rbp
        jge      SHORT G_M14182_IG20
        mov      esi, edi
        mov      ebp, r14d
-						;; size=148 bbWeight=0.50 PerfScore 13.50
+						;; size=152 bbWeight=0.50 PerfScore 13.50
 G_M14182_IG20:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        cmp      dword ptr [rbx+0x58], 0
        jne      SHORT G_M14182_IG21
@@ -486,7 +486,7 @@ G_M14182_IG20:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
 						;; size=15 bbWeight=0.50 PerfScore 3.62
-G_M14182_IG21:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M14182_IG21:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz, align
        mov      r9, gword ptr [rbx+0x20]
        ; gcrRegs +[r9]
        mov      ecx, dword ptr [rbx+0x58]
@@ -507,7 +507,8 @@ G_M14182_IG21:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
        jmp      G_M14182_IG27
-						;; size=62 bbWeight=0.50 PerfScore 10.62
+       align    [7 bytes for IG23]
+						;; size=69 bbWeight=0.50 PerfScore 10.62
 G_M14182_IG22:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp}, byref, isz
        ; byrRegs +[rbp]
        mov      r12d, esi
@@ -525,7 +526,6 @@ G_M14182_IG22:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp
        sub      eax, dword ptr [rbx+0x58]
        cmp      eax, r13d
        jle      SHORT G_M14182_IG24
-       align    [0 bytes for IG23]
 						;; size=38 bbWeight=0.50 PerfScore 6.50
 G_M14182_IG23:        ; bbWeight=4, gcrefRegs=000A {rcx rbx}, byrefRegs=8000 {r15}, loop=IG23, byref, isz
        ; byrRegs -[rbp]
@@ -732,7 +732,7 @@ G_M14182_IG36:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
 						;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1524, prolog size 19, PerfScore 746.40, instruction count 406, allocated bytes for code 1524 (MethodHash=fe54c899) for method System.Text.RegularExpressions.CompiledRegexRunner:Regex1_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
+; Total bytes of code 1535, prolog size 19, PerfScore 747.38, instruction count 406, allocated bytes for code 1535 (MethodHash=fe54c899) for method System.Text.RegularExpressions.CompiledRegexRunner:Regex1_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
 ; ============================================================
 
 Unwind Info:
+26 (+0.77%) : 14603.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex2_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
@@ -355,7 +355,7 @@ G_M35493_IG07:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
 						;; size=15 bbWeight=0.50 PerfScore 3.62
-G_M35493_IG08:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M35493_IG08:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        mov      r9, gword ptr [rbx+0x20]
        ; gcrRegs +[r9]
        mov      ecx, dword ptr [rbx+0x58]
@@ -376,6 +376,7 @@ G_M35493_IG08:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
        jmp      G_M35493_IG40
+       align    [0 bytes for IG11]
 						;; size=62 bbWeight=0.50 PerfScore 10.62
 G_M35493_IG09:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp}, byref, isz
        ; byrRegs +[rbp]
@@ -399,7 +400,6 @@ G_M35493_IG10:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=1020 {rbp
        sub      edx, dword ptr [rbx+0x58]
        cmp      edx, r13d
        jle      SHORT G_M35493_IG12
-       align    [0 bytes for IG11]
 						;; size=15 bbWeight=0.50 PerfScore 4.12
 G_M35493_IG11:        ; bbWeight=4, gcrefRegs=000A {rcx rbx}, byrefRegs=1020 {rbp r12}, loop=IG11, byref, isz
        mov      rdx, rcx
@@ -490,13 +490,14 @@ G_M35493_IG12:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=1020 {rbp
        mov      rdx, 0xD1FFAB1E
        ; gcrRegs +[rdx]
 						;; size=240 bbWeight=0.50 PerfScore 19.38
-G_M35493_IG13:        ; bbWeight=0.50, extend
+G_M35493_IG13:        ; bbWeight=0.50, isz, extend, align
        call     [<unknown method>]
        ; gcrRegs -[rcx rdx]
        ; byrRegs -[rbp r12]
        ; gcr arg pop 0
        jmp      G_M35493_IG40
-						;; size=11 bbWeight=0.50 PerfScore 2.50
+       align    [2 bytes for IG16]
+						;; size=13 bbWeight=0.50 PerfScore 2.50
 G_M35493_IG14:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp}, byref, isz
        ; byrRegs +[rbp]
        mov      r12, rbp
@@ -512,15 +513,14 @@ G_M35493_IG14:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
 						;; size=37 bbWeight=0.50 PerfScore 2.62
-G_M35493_IG15:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=1020 {rbp r12}, byref, isz, align
+G_M35493_IG15:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=1020 {rbp r12}, byref, isz
        mov      rcx, gword ptr [rbx+0x20]
        ; gcrRegs +[rcx]
        mov      eax, dword ptr [rcx+0x08]
        sub      eax, dword ptr [rbx+0x58]
        cmp      eax, r13d
        jle      SHORT G_M35493_IG17
-       align    [2 bytes for IG16]
-						;; size=17 bbWeight=0.50 PerfScore 4.25
+						;; size=15 bbWeight=0.50 PerfScore 4.12
 G_M35493_IG16:        ; bbWeight=4, gcrefRegs=000A {rcx rbx}, byrefRegs=1020 {rbp r12}, loop=IG16, byref, isz
        mov      rax, rcx
        ; gcrRegs +[rax]
@@ -545,7 +545,7 @@ G_M35493_IG16:        ; bbWeight=4, gcrefRegs=000A {rcx rbx}, byrefRegs=1020 {rb
        cmp      eax, r13d
        jg       SHORT G_M35493_IG16
 						;; size=62 bbWeight=4 PerfScore 112.00
-G_M35493_IG17:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=1020 {rbp r12}, byref, isz
+G_M35493_IG17:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=1020 {rbp r12}, byref, isz, align
        ; gcrRegs -[rcx rdx]
        cmp      r14d, 4
        jbe      G_M35493_IG18
@@ -568,7 +568,7 @@ G_M35493_IG17:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=1020 {rbp
        setb     al
        movzx    rax, al
        or       ecx, eax
-       je       SHORT G_M35493_IG18
+       je       G_M35493_IG18
        movzx    r15, word  ptr [r12+0x04]
        xor      ecx, ecx
        cmp      r15d, 97
@@ -603,7 +603,8 @@ G_M35493_IG17:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=1020 {rbp
        cmp      r14d, esi
        ja       G_M35493_IG49
        jmp      G_M35493_IG39
-						;; size=206 bbWeight=0.50 PerfScore 19.38
+       align    [5 bytes for IG19]
+						;; size=215 bbWeight=0.50 PerfScore 19.38
 G_M35493_IG18:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp}, byref, isz
        ; byrRegs -[r12]
        mov      r12, rbp
@@ -622,7 +623,6 @@ G_M35493_IG18:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp
        sub      eax, dword ptr [rbx+0x58]
        cmp      eax, r13d
        jle      SHORT G_M35493_IG20
-       align    [0 bytes for IG19]
 						;; size=43 bbWeight=0.50 PerfScore 6.62
 G_M35493_IG19:        ; bbWeight=4, gcrefRegs=000A {rcx rbx}, byrefRegs=1020 {rbp r12}, loop=IG19, byref, isz
        mov      rax, rcx
@@ -672,6 +672,7 @@ G_M35493_IG20:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=1020 {rbp
        movzx    rcx, cl
        or       ecx, eax
        je       SHORT G_M35493_IG21
+		  ;; NOP compensation instructions of 4 bytes.
        movzx    rcx, word  ptr [r12+0x04]
        xor      eax, eax
        cmp      ecx, 57
@@ -706,8 +707,9 @@ G_M35493_IG20:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=1020 {rbp
        cmp      r14d, esi
        ja       G_M35493_IG49
        jmp      G_M35493_IG39
-						;; size=196 bbWeight=0.50 PerfScore 18.75
-G_M35493_IG21:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp}, byref, isz, align
+       align    [0 bytes for IG22]
+						;; size=200 bbWeight=0.50 PerfScore 18.75
+G_M35493_IG21:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp}, byref, isz
        ; byrRegs -[r12]
        mov      r12, rbp
        ; byrRegs +[r12]
@@ -722,8 +724,7 @@ G_M35493_IG21:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp
        sub      eax, dword ptr [rbx+0x58]
        cmp      eax, r13d
        jle      SHORT G_M35493_IG23
-       align    [6 bytes for IG22]
-						;; size=39 bbWeight=0.50 PerfScore 6.25
+						;; size=33 bbWeight=0.50 PerfScore 6.12
 G_M35493_IG22:        ; bbWeight=4, gcrefRegs=000A {rcx rbx}, byrefRegs=1020 {rbp r12}, loop=IG22, byref, isz
        mov      rax, rcx
        ; gcrRegs +[rax]
@@ -748,7 +749,7 @@ G_M35493_IG22:        ; bbWeight=4, gcrefRegs=000A {rcx rbx}, byrefRegs=1020 {rb
        cmp      eax, r13d
        jg       SHORT G_M35493_IG22
 						;; size=62 bbWeight=4 PerfScore 112.00
-G_M35493_IG23:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=1020 {rbp r12}, byref, isz
+G_M35493_IG23:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=1020 {rbp r12}, byref, isz, align
        ; gcrRegs -[rcx rdx]
        cmp      r14d, 4
        jbe      G_M35493_IG24
@@ -772,6 +773,7 @@ G_M35493_IG23:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=1020 {rbp
        movzx    rcx, cl
        or       ecx, eax
        je       SHORT G_M35493_IG24
+		  ;; NOP compensation instructions of 4 bytes.
        movzx    rcx, word  ptr [r12+0x04]
        xor      eax, eax
        cmp      ecx, 56
@@ -806,7 +808,8 @@ G_M35493_IG23:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=1020 {rbp
        cmp      r14d, esi
        ja       G_M35493_IG49
        jmp      G_M35493_IG39
-						;; size=196 bbWeight=0.50 PerfScore 18.75
+       align    [2 bytes for IG25]
+						;; size=202 bbWeight=0.50 PerfScore 18.75
 G_M35493_IG24:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp}, byref, isz
        ; byrRegs -[r12]
        mov      r12, rbp
@@ -822,7 +825,6 @@ G_M35493_IG24:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp
        sub      eax, dword ptr [rbx+0x58]
        cmp      eax, r13d
        jle      SHORT G_M35493_IG26
-       align    [0 bytes for IG25]
 						;; size=33 bbWeight=0.50 PerfScore 6.12
 G_M35493_IG25:        ; bbWeight=4, gcrefRegs=000A {rcx rbx}, byrefRegs=1020 {rbp r12}, loop=IG25, byref, isz
        mov      rax, rcx
@@ -872,6 +874,7 @@ G_M35493_IG26:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=1020 {rbp
        movzx    rcx, cl
        or       ecx, eax
        je       SHORT G_M35493_IG27
+		  ;; NOP compensation instructions of 4 bytes.
        movzx    rcx, word  ptr [r12+0x04]
        xor      eax, eax
        cmp      ecx, 55
@@ -906,7 +909,8 @@ G_M35493_IG26:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=1020 {rbp
        cmp      r14d, esi
        ja       G_M35493_IG49
        jmp      G_M35493_IG39
-						;; size=196 bbWeight=0.50 PerfScore 18.75
+       align    [0 bytes for IG28]
+						;; size=200 bbWeight=0.50 PerfScore 18.75
 G_M35493_IG27:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp}, byref, isz
        ; byrRegs -[r12]
        mov      r12, rbp
@@ -922,7 +926,6 @@ G_M35493_IG27:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp
        sub      eax, dword ptr [rbx+0x58]
        cmp      eax, r13d
        jle      SHORT G_M35493_IG29
-       align    [0 bytes for IG28]
 						;; size=33 bbWeight=0.50 PerfScore 6.12
 G_M35493_IG28:        ; bbWeight=4, gcrefRegs=000A {rcx rbx}, byrefRegs=1020 {rbp r12}, loop=IG28, byref, isz
        mov      rax, rcx
@@ -948,7 +951,7 @@ G_M35493_IG28:        ; bbWeight=4, gcrefRegs=000A {rcx rbx}, byrefRegs=1020 {rb
        cmp      eax, r13d
        jg       SHORT G_M35493_IG28
 						;; size=62 bbWeight=4 PerfScore 112.00
-G_M35493_IG29:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=1020 {rbp r12}, byref, isz
+G_M35493_IG29:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=1020 {rbp r12}, byref, isz, align
        ; gcrRegs -[rcx rdx]
        cmp      r14d, 4
        jbe      G_M35493_IG30
@@ -972,6 +975,7 @@ G_M35493_IG29:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=1020 {rbp
        movzx    rcx, cl
        or       ecx, eax
        je       SHORT G_M35493_IG30
+		  ;; NOP compensation instructions of 4 bytes.
        movzx    rcx, word  ptr [r12+0x04]
        xor      eax, eax
        cmp      ecx, 54
@@ -1006,8 +1010,9 @@ G_M35493_IG29:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=1020 {rbp
        cmp      r14d, esi
        ja       G_M35493_IG49
        jmp      G_M35493_IG39
-						;; size=196 bbWeight=0.50 PerfScore 18.75
-G_M35493_IG30:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp}, byref, isz, align
+       align    [2 bytes for IG31]
+						;; size=202 bbWeight=0.50 PerfScore 18.75
+G_M35493_IG30:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp}, byref, isz
        ; byrRegs -[r12]
        mov      r12, rbp
        ; byrRegs +[r12]
@@ -1022,8 +1027,7 @@ G_M35493_IG30:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp
        sub      eax, dword ptr [rbx+0x58]
        cmp      eax, r13d
        jle      SHORT G_M35493_IG32
-       align    [7 bytes for IG31]
-						;; size=40 bbWeight=0.50 PerfScore 6.25
+						;; size=33 bbWeight=0.50 PerfScore 6.12
 G_M35493_IG31:        ; bbWeight=4, gcrefRegs=000A {rcx rbx}, byrefRegs=1020 {rbp r12}, loop=IG31, byref, isz
        mov      rax, rcx
        ; gcrRegs +[rax]
@@ -1072,6 +1076,7 @@ G_M35493_IG32:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=1020 {rbp
        movzx    rcx, cl
        or       ecx, eax
        je       SHORT G_M35493_IG33
+		  ;; NOP compensation instructions of 4 bytes.
        movzx    rcx, word  ptr [r12+0x04]
        xor      eax, eax
        cmp      ecx, 53
@@ -1106,7 +1111,8 @@ G_M35493_IG32:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=1020 {rbp
        cmp      r14d, esi
        ja       G_M35493_IG49
        jmp      G_M35493_IG39
-						;; size=196 bbWeight=0.50 PerfScore 18.75
+       align    [0 bytes for IG34]
+						;; size=200 bbWeight=0.50 PerfScore 18.75
 G_M35493_IG33:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp}, byref, isz
        ; byrRegs -[r12]
        mov      r12, rbp
@@ -1122,7 +1128,6 @@ G_M35493_IG33:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp
        sub      eax, dword ptr [rbx+0x58]
        cmp      eax, r13d
        jle      SHORT G_M35493_IG35
-       align    [0 bytes for IG34]
 						;; size=33 bbWeight=0.50 PerfScore 6.12
...
+16 (+5.03%) : 18716.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:EnsureScopedRefAttributeExists(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder) (FullOpts)
@@ -83,9 +83,9 @@ G_M38191_IG03:        ; bbWeight=4, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=
        test     eax, eax
        je       G_M38191_IG09
 						;; size=25 bbWeight=4 PerfScore 27.00
-G_M38191_IG04:        ; bbWeight=2, gcrefRegs=A0C8 {rbx rsi rdi r13 r15}, byrefRegs=0000 {}, byref, isz
+G_M38191_IG04:        ; bbWeight=2, gcrefRegs=A0C8 {rbx rsi rdi r13 r15}, byrefRegs=0000 {}, byref, isz, align
        test     rsi, rsi
-       je       SHORT G_M38191_IG07
+       je       G_M38191_IG07
        mov      ecx, dword ptr [rsi+0x120]
        mov      rdx, gword ptr [rsi+0xA8]
        ; gcrRegs +[rdx]
@@ -110,8 +110,8 @@ G_M38191_IG04:        ; bbWeight=2, gcrefRegs=A0C8 {rbx rsi rdi r13 r15}, byrefR
        lea      rcx, bword ptr [rsi+0x120]
        ; byrRegs +[rcx]
        jmp      SHORT G_M38191_IG05
-       align    [0 bytes for IG05]
-						;; size=82 bbWeight=2 PerfScore 37.00
+       align    [10 bytes for IG05]
+						;; size=96 bbWeight=2 PerfScore 37.00
 G_M38191_IG05:        ; bbWeight=16, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0002 {rcx}, loop=IG05, byref, isz
        mov      eax, dword ptr [rcx]
        mov      dword ptr [rsp+0x24], eax
@@ -124,11 +124,12 @@ G_M38191_IG05:        ; bbWeight=16, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs
        cmp      eax, dword ptr [rsp+0x24]
        jne      SHORT G_M38191_IG05
 						;; size=28 bbWeight=16 PerfScore 412.00
-G_M38191_IG06:        ; bbWeight=2, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref, isz
+G_M38191_IG06:        ; bbWeight=2, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref, isz, align
        ; byrRegs -[rcx]
        jmp      SHORT G_M38191_IG09
-						;; size=2 bbWeight=2 PerfScore 4.00
-G_M38191_IG07:        ; bbWeight=2, gcrefRegs=A0C8 {rbx rsi rdi r13 r15}, byrefRegs=0000 {}, byref, isz, align
+       align    [9 bytes for IG08]
+						;; size=11 bbWeight=2 PerfScore 4.00
+G_M38191_IG07:        ; bbWeight=2, gcrefRegs=A0C8 {rbx rsi rdi r13 r15}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[r13]
        mov      rcx, r13
        ; gcrRegs +[rcx]
@@ -157,9 +158,7 @@ G_M38191_IG07:        ; bbWeight=2, gcrefRegs=A0C8 {rbx rsi rdi r13 r15}, byrefR
        je       SHORT G_M38191_IG09
        lea      rcx, bword ptr [rbx+0x16C]
        ; byrRegs +[rcx]
-       jmp      SHORT G_M38191_IG08
-       align    [5 bytes for IG08]
-						;; size=64 bbWeight=2 PerfScore 41.00
+						;; size=57 bbWeight=2 PerfScore 37.00
 G_M38191_IG08:        ; bbWeight=16, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0002 {rcx}, loop=IG08, byref, isz
        mov      eax, dword ptr [rcx]
        mov      dword ptr [rsp+0x20], eax
@@ -193,7 +192,7 @@ G_M38191_IG10:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        ret      
 						;; size=17 bbWeight=1 PerfScore 5.25
 
-; Total bytes of code 318, prolog size 33, PerfScore 992.05, instruction count 96, allocated bytes for code 318 (MethodHash=350f6ad0) for method Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:EnsureScopedRefAttributeExists(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder) (FullOpts)
+; Total bytes of code 334, prolog size 33, PerfScore 989.65, instruction count 95, allocated bytes for code 334 (MethodHash=350f6ad0) for method Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:EnsureScopedRefAttributeExists(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder) (FullOpts)
 ; ============================================================
 
 Unwind Info:
benchmarks.run_pgo.windows.x64.checked.mch
-23 (-6.42%) : 49787.dasm - BenchmarksGame.Fasta_1:SelectNucleotides(BenchmarksGame.Fasta_1+Frequency[],int[]):ubyte[] (Tier1-OSR)
@@ -53,14 +53,15 @@ G_M48139_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      r11d, dword ptr [rsp+0xAC]
        mov      eax, dword ptr [rsp+0xA8]
 						;; size=102 bbWeight=1 PerfScore 20.25
-G_M48139_IG02:        ; bbWeight=1, gcrefRegs=0106 {rcx rdx r8}, byrefRegs=0000 {}, byref, isz
+G_M48139_IG02:        ; bbWeight=1, gcrefRegs=0106 {rcx rdx r8}, byrefRegs=0000 {}, byref, isz, align
        jmp      SHORT G_M48139_IG06
-						;; size=2 bbWeight=1 PerfScore 2.00
-G_M48139_IG03:        ; bbWeight=1.64, gcrefRegs=0106 {rcx rdx r8}, byrefRegs=0000 {}, byref
+       align    [2 bytes for IG10]
+						;; size=4 bbWeight=1 PerfScore 2.00
+G_M48139_IG03:        ; bbWeight=1.64, gcrefRegs=0106 {rcx rdx r8}, byrefRegs=0000 {}, byref, isz
        sub      ebx, r9d
        cmp      ebx, 60
-       jl       G_M48139_IG14
-						;; size=12 bbWeight=1.64 PerfScore 2.46
+       jl       SHORT G_M48139_IG14
+						;; size=8 bbWeight=1.64 PerfScore 2.46
 G_M48139_IG04:        ; bbWeight=1.05, gcrefRegs=0106 {rcx rdx r8}, byrefRegs=0000 {}, byref
        mov      r11d, 60
 						;; size=6 bbWeight=1.05 PerfScore 0.26
@@ -87,12 +88,10 @@ G_M48139_IG08:        ; bbWeight=98.36, gcrefRegs=0106 {rcx rdx r8}, byrefRegs=0
        test     r15d, r15d
        jle      SHORT G_M48139_IG12
 						;; size=35 bbWeight=98.36 PerfScore 811.45
-G_M48139_IG09:        ; bbWeight=96.37, gcrefRegs=0106 {rcx rdx r8}, byrefRegs=0000 {}, byref, isz, align
+G_M48139_IG09:        ; bbWeight=96.37, gcrefRegs=0106 {rcx rdx r8}, byrefRegs=0000 {}, byref
        vxorps   xmm0, xmm0, xmm0
        vcvtsi2sd xmm0, xmm0, edi
-       jmp      SHORT G_M48139_IG10
-       align    [12 bytes for IG10]
-						;; size=22 bbWeight=96.37 PerfScore 803.12
+						;; size=8 bbWeight=96.37 PerfScore 610.37
 G_M48139_IG10:        ; bbWeight=419.14, gcrefRegs=0106 {rcx rdx r8}, byrefRegs=0000 {}, byref, isz
        mov      edi, ebp
        shl      rdi, 4
@@ -107,20 +106,20 @@ G_M48139_IG11:        ; bbWeight=421.16, gcrefRegs=0106 {rcx rdx r8}, byrefRegs=
 						;; size=7 bbWeight=421.16 PerfScore 631.74
 G_M48139_IG12:        ; bbWeight=2.02, gcrefRegs=0106 {rcx rdx r8}, byrefRegs=0000 {}, byref, isz
        cmp      r15d, r14d
-       jae      G_M48139_IG21
+       jae      SHORT G_M48139_IG21
        mov      ebp, r15d
        shl      rbp, 4
        movzx    rdi, byte  ptr [rcx+rbp+0x10]
        jmp      SHORT G_M48139_IG16
-						;; size=24 bbWeight=2.02 PerfScore 12.15
+						;; size=20 bbWeight=2.02 PerfScore 12.15
 G_M48139_IG13:        ; bbWeight=0.82, gcrefRegs=0106 {rcx rdx r8}, byrefRegs=0000 {}, byref, isz
        mov      esi, r10d
        jmp      SHORT G_M48139_IG17
 						;; size=5 bbWeight=0.82 PerfScore 1.85
-G_M48139_IG14:        ; bbWeight=0.59, gcrefRegs=0106 {rcx rdx r8}, byrefRegs=0000 {}, byref
+G_M48139_IG14:        ; bbWeight=0.59, gcrefRegs=0106 {rcx rdx r8}, byrefRegs=0000 {}, byref, isz
        mov      r11d, ebx
-       jmp      G_M48139_IG05
-						;; size=8 bbWeight=0.59 PerfScore 1.34
+       jmp      SHORT G_M48139_IG05
+						;; size=5 bbWeight=0.59 PerfScore 1.34
 G_M48139_IG15:        ; bbWeight=96.33, gcrefRegs=0106 {rcx rdx r8}, byrefRegs=0000 {}, byref
        mov      edi, ebp
        shl      rdi, 4
@@ -174,7 +173,7 @@ G_M48139_IG21:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 358, prolog size 102, PerfScore 6632.07, instruction count 89, allocated bytes for code 358 (MethodHash=375543f4) for method BenchmarksGame.Fasta_1:SelectNucleotides(BenchmarksGame.Fasta_1+Frequency[],int[]):ubyte[] (Tier1-OSR)
+; Total bytes of code 335, prolog size 102, PerfScore 6437.02, instruction count 88, allocated bytes for code 335 (MethodHash=375543f4) for method BenchmarksGame.Fasta_1:SelectNucleotides(BenchmarksGame.Fasta_1+Frequency[],int[]):ubyte[] (Tier1-OSR)
 ; ============================================================
 
 Unwind Info:
-5 (-3.05%) : 39029.dasm - AssignJagged:CopyToAssign(int[][],int[][]) (Tier1-OSR)
@@ -39,6 +39,7 @@ G_M3993_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
 						;; size=51 bbWeight=1 PerfScore 10.25
 G_M3993_IG02:        ; bbWeight=1, gcrefRegs=0006 {rcx rdx}, byrefRegs=0000 {}, byref, isz
        jmp      SHORT G_M3993_IG04
+       align    [0 bytes for IG06]
 						;; size=2 bbWeight=1 PerfScore 2.00
 G_M3993_IG03:        ; bbWeight=0.99, gcrefRegs=0006 {rcx rdx}, byrefRegs=0000 {}, byref
        xor      eax, eax
@@ -47,7 +48,7 @@ G_M3993_IG04:        ; bbWeight=0.99, gcrefRegs=0006 {rcx rdx}, byrefRegs=0000 {
        cmp      eax, 101
        jge      SHORT G_M3993_IG07
 						;; size=5 bbWeight=0.99 PerfScore 1.23
-G_M3993_IG05:        ; bbWeight=0.98, gcrefRegs=0006 {rcx rdx}, byrefRegs=0000 {}, byref, isz, align
+G_M3993_IG05:        ; bbWeight=0.98, gcrefRegs=0006 {rcx rdx}, byrefRegs=0000 {}, byref, isz
        mov      r10d, dword ptr [rdx+0x08]
        mov      r9d, r8d
        cmp      r8d, r10d
@@ -59,9 +60,7 @@ G_M3993_IG05:        ; bbWeight=0.98, gcrefRegs=0006 {rcx rdx}, byrefRegs=0000 {
        jae      SHORT G_M3993_IG08
        mov      r9, gword ptr [rcx+8*r9+0x10]
        ; gcrRegs +[r9]
-       jmp      SHORT G_M3993_IG06
-       align    [3 bytes for IG06]
-						;; size=36 bbWeight=0.98 PerfScore 12.45
+						;; size=31 bbWeight=0.98 PerfScore 10.50
 G_M3993_IG06:        ; bbWeight=99.01, gcrefRegs=0606 {rcx rdx r9 r10}, byrefRegs=0000 {}, loop=IG06, byref, isz
        mov      r11, r10
        ; gcrRegs +[r11]
@@ -104,7 +103,7 @@ G_M3993_IG10:        ; bbWeight=0, epilog, nogc, extend
        ret      
 						;; size=11 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 164, prolog size 51, PerfScore 1382.97, instruction count 47, allocated bytes for code 164 (MethodHash=493af066) for method AssignJagged:CopyToAssign(int[][],int[][]) (Tier1-OSR)
+; Total bytes of code 159, prolog size 51, PerfScore 1380.51, instruction count 46, allocated bytes for code 159 (MethodHash=493af066) for method AssignJagged:CopyToAssign(int[][],int[][]) (Tier1-OSR)
 ; ============================================================
 
 Unwind Info:
-5 (-3.05%) : 39067.dasm - AssignJagged:CopyToAssign(int[][],int[][]) (Tier1-OSR)
@@ -39,6 +39,7 @@ G_M3993_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
 						;; size=51 bbWeight=1 PerfScore 10.25
 G_M3993_IG02:        ; bbWeight=1, gcrefRegs=0006 {rcx rdx}, byrefRegs=0000 {}, byref, isz
        jmp      SHORT G_M3993_IG04
+       align    [0 bytes for IG06]
 						;; size=2 bbWeight=1 PerfScore 2.00
 G_M3993_IG03:        ; bbWeight=0.92, gcrefRegs=0006 {rcx rdx}, byrefRegs=0000 {}, byref
        xor      eax, eax
@@ -47,7 +48,7 @@ G_M3993_IG04:        ; bbWeight=0.92, gcrefRegs=0006 {rcx rdx}, byrefRegs=0000 {
        cmp      eax, 101
        jge      SHORT G_M3993_IG07
 						;; size=5 bbWeight=0.92 PerfScore 1.15
-G_M3993_IG05:        ; bbWeight=0.91, gcrefRegs=0006 {rcx rdx}, byrefRegs=0000 {}, byref, isz, align
+G_M3993_IG05:        ; bbWeight=0.91, gcrefRegs=0006 {rcx rdx}, byrefRegs=0000 {}, byref, isz
        mov      r10d, dword ptr [rdx+0x08]
        mov      r9d, r8d
        cmp      r8d, r10d
@@ -59,9 +60,7 @@ G_M3993_IG05:        ; bbWeight=0.91, gcrefRegs=0006 {rcx rdx}, byrefRegs=0000 {
        jae      SHORT G_M3993_IG08
        mov      r9, gword ptr [rcx+8*r9+0x10]
        ; gcrRegs +[r9]
-       jmp      SHORT G_M3993_IG06
-       align    [3 bytes for IG06]
-						;; size=36 bbWeight=0.91 PerfScore 11.62
+						;; size=31 bbWeight=0.91 PerfScore 9.80
 G_M3993_IG06:        ; bbWeight=99.08, gcrefRegs=0606 {rcx rdx r9 r10}, byrefRegs=0000 {}, loop=IG06, byref, isz
        mov      r11, r10
        ; gcrRegs +[r11]
@@ -104,7 +103,7 @@ G_M3993_IG10:        ; bbWeight=0, epilog, nogc, extend
        ret      
 						;; size=11 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 164, prolog size 51, PerfScore 1382.68, instruction count 47, allocated bytes for code 164 (MethodHash=493af066) for method AssignJagged:CopyToAssign(int[][],int[][]) (Tier1-OSR)
+; Total bytes of code 159, prolog size 51, PerfScore 1380.36, instruction count 46, allocated bytes for code 159 (MethodHash=493af066) for method AssignJagged:CopyToAssign(int[][],int[][]) (Tier1-OSR)
 ; ============================================================
 
 Unwind Info:
+16 (+0.69%) : 83552.dasm - System.Text.RegularExpressions.RegexFindOptimizations:TryFindNextStartingPositionLeftToRight(System.ReadOnlySpan`1[ushort],byref,int):ubyte:this (Tier1-OSR)
@@ -944,12 +944,12 @@ G_M53443_IG14:        ; bbWeight=400.00, gcrefRegs=8008 {rbx r15}, byrefRegs=022
        mov      r8d, eax
        jmp      SHORT G_M53443_IG17
 						;; size=30 bbWeight=400.00 PerfScore 2799.97
-G_M53443_IG15:        ; bbWeight=50.00, gcVars=00000000000180000000001000000000 {V307 V755 V757}, gcrefRegs=8008 {rbx r15}, byrefRegs=0220 {rbp r9}, gcvars, byref, isz
+G_M53443_IG15:        ; bbWeight=50.00, gcVars=00000000000180000000001000000000 {V307 V755 V757}, gcrefRegs=8008 {rbx r15}, byrefRegs=0220 {rbp r9}, gcvars, byref, isz, align
        ; byrRegs +[r9]
        ; GC ptr vars +{V36 V307}
        jmp      SHORT G_M53443_IG16
-       align    [0 bytes for IG31]
-						;; size=2 bbWeight=50.00 PerfScore 100.00
+       align    [5 bytes for IG31]
+						;; size=7 bbWeight=50.00 PerfScore 100.00
 G_M53443_IG16:        ; bbWeight=400.00, gcrefRegs=8008 {rbx r15}, byrefRegs=0220 {rbp r9}, byref
        mov      rcx, r9
        ; byrRegs +[rcx]
@@ -1133,6 +1133,7 @@ G_M53443_IG31:        ; bbWeight=3199.97, gcrefRegs=8008 {rbx r15}, byrefRegs=10
        movzx    rsi, word  ptr [r12+2*rsi]
        cmp      esi, 127
        jg       SHORT G_M53443_IG35
+		  ;; NOP compensation instructions of 4 bytes.
        mov      edi, esi
        sar      edi, 4
        and      esi, 15
@@ -1144,8 +1145,8 @@ G_M53443_IG31:        ; bbWeight=3199.97, gcrefRegs=8008 {rbx r15}, byrefRegs=10
        inc      r11d
        cmp      r11d, r9d
        jl       SHORT G_M53443_IG31
-						;; size=50 bbWeight=3199.97 PerfScore 32799.70
-G_M53443_IG32:        ; bbWeight=400.00, gcrefRegs=8008 {rbx r15}, byrefRegs=0022 {rcx rbp}, byref, isz
+						;; size=54 bbWeight=3199.97 PerfScore 32799.70
+G_M53443_IG32:        ; bbWeight=400.00, gcrefRegs=8008 {rbx r15}, byrefRegs=0022 {rcx rbp}, byref, isz, align
        ; byrRegs -[r12]
        movzx    r8, byte  ptr [r8]
        and      r8d, 1
@@ -1162,7 +1163,8 @@ G_M53443_IG32:        ; bbWeight=400.00, gcrefRegs=8008 {rbx r15}, byrefRegs=002
        ; byrRegs -[rcx]
        ; gcr arg pop 0
        jmp      SHORT G_M53443_IG34
-						;; size=55 bbWeight=400.00 PerfScore 6999.94
+       align    [11 bytes for IG53]
+						;; size=66 bbWeight=400.00 PerfScore 6999.94
 G_M53443_IG33:        ; bbWeight=400.00, gcVars=00000000000180000000080000000000 {V318 V755 V757}, gcrefRegs=8008 {rbx r15}, byrefRegs=1022 {rcx rbp r12}, gcvars, byref
        ; byrRegs +[rcx]
        ; GC ptr vars +{V318}
@@ -1284,11 +1286,9 @@ G_M53443_IG41:        ; bbWeight=1646.00, gcVars=0000000000018000000000000000400
        je       G_M53443_IG59
        jmp      G_M53443_IG57
 						;; size=74 bbWeight=1646.00 PerfScore 23866.98
-G_M53443_IG42:        ; bbWeight=51.44, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0020 {rbp}, byref, isz, align
+G_M53443_IG42:        ; bbWeight=51.44, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0020 {rbp}, byref
        mov      r10d, dword ptr [rsp+0x5DC]
-       jmp      SHORT G_M53443_IG43
-       align    [2 bytes for IG53]
-						;; size=12 bbWeight=51.44 PerfScore 154.31
+						;; size=8 bbWeight=51.44 PerfScore 51.44
 G_M53443_IG43:        ; bbWeight=1646.00, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0020 {rbp}, byref, isz
        cmp      r10d, 128
        jl       G_M53443_IG47
@@ -1673,7 +1673,7 @@ RWD00  	dd	G_M53443_IG08 - G_M53443_IG02
        	dd	G_M53443_IG22 - G_M53443_IG02
 
 
-; Total bytes of code 2314, prolog size 129, PerfScore 638752.52, instruction count 520, allocated bytes for code 2314 (MethodHash=4ac32f3c) for method System.Text.RegularExpressions.RegexFindOptimizations:TryFindNextStartingPositionLeftToRight(System.ReadOnlySpan`1[ushort],byref,int):ubyte:this (Tier1-OSR)
+; Total bytes of code 2330, prolog size 129, PerfScore 638651.25, instruction count 519, allocated bytes for code 2330 (MethodHash=4ac32f3c) for method System.Text.RegularExpressions.RegexFindOptimizations:TryFindNextStartingPositionLeftToRight(System.ReadOnlySpan`1[ushort],byref,int):ubyte:this (Tier1-OSR)
 ; ============================================================
 
 Unwind Info:
+16 (+0.69%) : 96040.dasm - System.Text.RegularExpressions.RegexFindOptimizations:TryFindNextStartingPositionLeftToRight(System.ReadOnlySpan`1[ushort],byref,int):ubyte:this (Tier1-OSR)
@@ -1081,7 +1081,7 @@ G_M53443_IG32:        ; bbWeight=3199.99, gcrefRegs=8008 {rbx r15}, byrefRegs=00
        mov      r12d, r11d
        movzx    r12, word  ptr [rsi+2*r12]
        cmp      r12d, 127
-       jg       SHORT G_M53443_IG36
+       jg       G_M53443_IG36
        mov      edi, r12d
        sar      edi, 4
        and      r12d, 15
@@ -1093,8 +1093,8 @@ G_M53443_IG32:        ; bbWeight=3199.99, gcrefRegs=8008 {rbx r15}, byrefRegs=00
        inc      r11d
        cmp      r11d, r9d
        jl       SHORT G_M53443_IG32
-						;; size=54 bbWeight=3199.99 PerfScore 32799.92
-G_M53443_IG33:        ; bbWeight=400.00, gcrefRegs=8008 {rbx r15}, byrefRegs=0022 {rcx rbp}, byref, isz
+						;; size=58 bbWeight=3199.99 PerfScore 32799.92
+G_M53443_IG33:        ; bbWeight=400.00, gcrefRegs=8008 {rbx r15}, byrefRegs=0022 {rcx rbp}, byref, isz, align
        ; byrRegs -[rsi]
        movzx    r8, byte  ptr [r8]
        and      r8d, 1
@@ -1111,7 +1111,8 @@ G_M53443_IG33:        ; bbWeight=400.00, gcrefRegs=8008 {rbx r15}, byrefRegs=002
        ; byrRegs -[rcx]
        ; gcr arg pop 0
        jmp      SHORT G_M53443_IG35
-						;; size=55 bbWeight=400.00 PerfScore 6999.98
+       align    [15 bytes for IG53]
+						;; size=70 bbWeight=400.00 PerfScore 6999.98
 G_M53443_IG34:        ; bbWeight=400.00, gcVars=00000000100080000000080000000000 {V251 V686 V688}, gcrefRegs=8008 {rbx r15}, byrefRegs=0062 {rcx rbp rsi}, gcvars, byref
        ; byrRegs +[rcx]
        ; GC ptr vars +{V251}
@@ -1230,11 +1231,9 @@ G_M53443_IG41:        ; bbWeight=1643.45, gcVars=0000000010008000000000000000400
        je       G_M53443_IG59
        jmp      G_M53443_IG57
 						;; size=74 bbWeight=1643.45 PerfScore 23830.07
-G_M53443_IG42:        ; bbWeight=51.36, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0020 {rbp}, byref, isz, align
+G_M53443_IG42:        ; bbWeight=51.36, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0020 {rbp}, byref
        mov      r10d, dword ptr [rsp+0x5DC]
-       jmp      SHORT G_M53443_IG43
-       align    [1 bytes for IG53]
-						;; size=11 bbWeight=51.36 PerfScore 154.07
+						;; size=8 bbWeight=51.36 PerfScore 51.36
 G_M53443_IG43:        ; bbWeight=1643.45, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0020 {rbp}, byref, isz
        cmp      r10d, 128
        jl       G_M53443_IG47
@@ -1604,7 +1603,7 @@ RWD00  	dd	G_M53443_IG06 - G_M53443_IG02
        	dd	G_M53443_IG23 - G_M53443_IG02
 
 
-; Total bytes of code 2313, prolog size 147, PerfScore 641533.41, instruction count 523, allocated bytes for code 2313 (MethodHash=4ac32f3c) for method System.Text.RegularExpressions.RegexFindOptimizations:TryFindNextStartingPositionLeftToRight(System.ReadOnlySpan`1[ushort],byref,int):ubyte:this (Tier1-OSR)
+; Total bytes of code 2329, prolog size 147, PerfScore 641432.30, instruction count 522, allocated bytes for code 2329 (MethodHash=4ac32f3c) for method System.Text.RegularExpressions.RegexFindOptimizations:TryFindNextStartingPositionLeftToRight(System.ReadOnlySpan`1[ushort],byref,int):ubyte:this (Tier1-OSR)
 ; ============================================================
 
 Unwind Info:
+30 (+0.89%) : 39464.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex2_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
@@ -261,7 +261,7 @@ G_M35493_IG03:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=4020 {rbp r1
        cmp      r15d, 4
        jbe      G_M35493_IG08
 						;; size=22 bbWeight=1 PerfScore 8.25
-G_M35493_IG04:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=4020 {rbp r14}, byref, isz
+G_M35493_IG04:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=4020 {rbp r14}, byref
        ; gcrRegs -[rcx]
        movzx    r15, word  ptr [r14]
        xor      ecx, ecx
@@ -313,13 +313,14 @@ G_M35493_IG04:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=4020 {rbp
        movzx    rax, al
        or       ecx, eax
        je       SHORT G_M35493_IG08
+		  ;; NOP compensation instructions of 4 bytes.
        lea      ecx, [rdi+0x05]
        mov      r12d, ecx
        cmp      r12d, esi
        ja       G_M35493_IG52
        sub      esi, r12d
        js       G_M35493_IG49
-						;; size=209 bbWeight=0.50 PerfScore 18.38
+						;; size=213 bbWeight=0.50 PerfScore 18.38
 G_M35493_IG05:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        ; byrRegs -[rbp r14]
        mov      ebp, edi
@@ -338,7 +339,7 @@ G_M35493_IG06:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
 						;; size=15 bbWeight=0.50 PerfScore 3.62
-G_M35493_IG07:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M35493_IG07:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz, align
        mov      r9, gword ptr [rbx+0x20]
        ; gcrRegs +[r9]
        mov      ecx, dword ptr [rbx+0x58]
@@ -359,7 +360,8 @@ G_M35493_IG07:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
        jmp      G_M35493_IG39
-						;; size=62 bbWeight=0.50 PerfScore 10.62
+       align    [1 bytes for IG10]
+						;; size=63 bbWeight=0.50 PerfScore 10.62
 G_M35493_IG08:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp}, byref
        ; byrRegs +[rbp]
        mov      r14, rbp
@@ -368,15 +370,14 @@ G_M35493_IG08:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp
        sub      r12d, edi
        js       G_M35493_IG50
 						;; size=15 bbWeight=0.50 PerfScore 0.88
-G_M35493_IG09:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=4020 {rbp r14}, byref, isz, align
+G_M35493_IG09:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=4020 {rbp r14}, byref, isz
        mov      rcx, gword ptr [rbx+0x20]
        ; gcrRegs +[rcx]
        mov      edx, dword ptr [rcx+0x08]
        sub      edx, dword ptr [rbx+0x58]
        cmp      edx, r13d
        jle      SHORT G_M35493_IG11
-       align    [5 bytes for IG10]
-						;; size=20 bbWeight=0.50 PerfScore 4.25
+						;; size=15 bbWeight=0.50 PerfScore 4.12
 G_M35493_IG10:        ; bbWeight=4, gcrefRegs=000A {rcx rbx}, byrefRegs=4020 {rbp r14}, loop=IG10, byref, isz
        mov      rdx, rcx
        ; gcrRegs +[rdx]
@@ -435,6 +436,7 @@ G_M35493_IG11:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=4020 {rbp
        movzx    rdx, dl
        or       ecx, edx
        je       SHORT G_M35493_IG13
+		  ;; NOP compensation instructions of 4 bytes.
        movzx    r15, word  ptr [r14+0x06]
        xor      ecx, ecx
        cmp      r15d, 97
@@ -469,10 +471,11 @@ G_M35493_IG11:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=4020 {rbp
        ; gcrRegs -[rcx rdx]
        ; byrRegs -[rbp r14]
        ; gcr arg pop 0
-						;; size=230 bbWeight=0.50 PerfScore 20.88
-G_M35493_IG12:        ; bbWeight=0.50, extend
+						;; size=234 bbWeight=0.50 PerfScore 20.88
+G_M35493_IG12:        ; bbWeight=0.50, isz, extend, align
        jmp      G_M35493_IG39
-						;; size=5 bbWeight=0.50 PerfScore 1.00
+       align    [5 bytes for IG15]
+						;; size=10 bbWeight=0.50 PerfScore 1.00
 G_M35493_IG13:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp}, byref
        ; byrRegs +[rbp]
        mov      r14, rbp
@@ -488,7 +491,6 @@ G_M35493_IG14:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=4020 {rbp
        sub      eax, dword ptr [rbx+0x58]
        cmp      eax, r13d
        jle      SHORT G_M35493_IG16
-       align    [0 bytes for IG15]
 						;; size=15 bbWeight=0.50 PerfScore 4.12
 G_M35493_IG15:        ; bbWeight=4, gcrefRegs=000A {rcx rbx}, byrefRegs=4020 {rbp r14}, loop=IG15, byref, isz
        mov      rax, rcx
@@ -538,6 +540,7 @@ G_M35493_IG16:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=4020 {rbp
        movzx    rax, al
        or       ecx, eax
        je       SHORT G_M35493_IG17
+		  ;; NOP compensation instructions of 4 bytes.
        movzx    r15, word  ptr [r14+0x04]
        xor      ecx, ecx
        cmp      r15d, 97
@@ -572,8 +575,9 @@ G_M35493_IG16:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=4020 {rbp
        cmp      r12d, esi
        ja       G_M35493_IG52
        jmp      G_M35493_IG38
-						;; size=201 bbWeight=0.50 PerfScore 19.38
-G_M35493_IG17:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp}, byref, isz, align
+       align    [0 bytes for IG18]
+						;; size=205 bbWeight=0.50 PerfScore 19.38
+G_M35493_IG17:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp}, byref, isz
        ; byrRegs -[r14]
        mov      r14, rbp
        ; byrRegs +[r14]
@@ -591,8 +595,7 @@ G_M35493_IG17:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp
        sub      eax, dword ptr [rbx+0x58]
        cmp      eax, r13d
        jle      SHORT G_M35493_IG19
-       align    [7 bytes for IG18]
-						;; size=50 bbWeight=0.50 PerfScore 6.75
+						;; size=43 bbWeight=0.50 PerfScore 6.62
 G_M35493_IG18:        ; bbWeight=4, gcrefRegs=000A {rcx rbx}, byrefRegs=4020 {rbp r14}, loop=IG18, byref, isz
        mov      rax, rcx
        ; gcrRegs +[rax]
@@ -617,7 +620,7 @@ G_M35493_IG18:        ; bbWeight=4, gcrefRegs=000A {rcx rbx}, byrefRegs=4020 {rb
        cmp      eax, r13d
        jg       SHORT G_M35493_IG18
 						;; size=62 bbWeight=4 PerfScore 112.00
-G_M35493_IG19:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=4020 {rbp r14}, byref, isz
+G_M35493_IG19:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=4020 {rbp r14}, byref, isz, align
        ; gcrRegs -[rcx rdx]
        cmp      r12d, 4
        jbe      G_M35493_IG20
@@ -641,6 +644,7 @@ G_M35493_IG19:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=4020 {rbp
        movzx    rcx, cl
        or       ecx, eax
        je       SHORT G_M35493_IG20
+		  ;; NOP compensation instructions of 4 bytes.
        movzx    rcx, word  ptr [r14+0x04]
        xor      eax, eax
        cmp      ecx, 57
@@ -675,8 +679,9 @@ G_M35493_IG19:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=4020 {rbp
        cmp      r12d, esi
        ja       G_M35493_IG52
        jmp      G_M35493_IG38
-						;; size=191 bbWeight=0.50 PerfScore 18.75
-G_M35493_IG20:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp}, byref, isz, align
+       align    [8 bytes for IG21]
+						;; size=203 bbWeight=0.50 PerfScore 18.75
+G_M35493_IG20:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp}, byref, isz
        ; byrRegs -[r14]
        mov      r14, rbp
        ; byrRegs +[r14]
@@ -691,8 +696,7 @@ G_M35493_IG20:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp
        sub      eax, dword ptr [rbx+0x58]
        cmp      eax, r13d
        jle      SHORT G_M35493_IG22
-       align    [2 bytes for IG21]
-						;; size=35 bbWeight=0.50 PerfScore 6.25
+						;; size=33 bbWeight=0.50 PerfScore 6.12
 G_M35493_IG21:        ; bbWeight=4, gcrefRegs=000A {rcx rbx}, byrefRegs=4020 {rbp r14}, loop=IG21, byref, isz
        mov      rax, rcx
        ; gcrRegs +[rax]
@@ -741,6 +745,7 @@ G_M35493_IG22:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=4020 {rbp
        movzx    rcx, cl
        or       ecx, eax
        je       SHORT G_M35493_IG23
+		  ;; NOP compensation instructions of 4 bytes.
        movzx    rcx, word  ptr [r14+0x04]
        xor      eax, eax
        cmp      ecx, 56
@@ -775,8 +780,9 @@ G_M35493_IG22:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=4020 {rbp
        cmp      r12d, esi
        ja       G_M35493_IG52
        jmp      G_M35493_IG38
-						;; size=191 bbWeight=0.50 PerfScore 18.75
-G_M35493_IG23:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp}, byref, isz, align
+       align    [0 bytes for IG24]
+						;; size=195 bbWeight=0.50 PerfScore 18.75
+G_M35493_IG23:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp}, byref, isz
        ; byrRegs -[r14]
        mov      r14, rbp
        ; byrRegs +[r14]
@@ -791,8 +797,7 @@ G_M35493_IG23:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp
        sub      eax, dword ptr [rbx+0x58]
        cmp      eax, r13d
        jle      SHORT G_M35493_IG25
-       align    [2 bytes for IG24]
-						;; size=35 bbWeight=0.50 PerfScore 6.25
+						;; size=33 bbWeight=0.50 PerfScore 6.12
 G_M35493_IG24:        ; bbWeight=4, gcrefRegs=000A {rcx rbx}, byrefRegs=4020 {rbp r14}, loop=IG24, byref, isz
        mov      rax, rcx
        ; gcrRegs +[rax]
@@ -841,6 +846,7 @@ G_M35493_IG25:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=4020 {rbp
        movzx    rcx, cl
        or       ecx, eax
        je       SHORT G_M35493_IG26
+		  ;; NOP compensation instructions of 4 bytes.
        movzx    rcx, word  ptr [r14+0x04]
        xor      eax, eax
        cmp      ecx, 55
@@ -875,8 +881,9 @@ G_M35493_IG25:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=4020 {rbp
        cmp      r12d, esi
        ja       G_M35493_IG52
        jmp      G_M35493_IG38
-						;; size=191 bbWeight=0.50 PerfScore 18.75
-G_M35493_IG26:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp}, byref, isz, align
+       align    [0 bytes for IG27]
+						;; size=195 bbWeight=0.50 PerfScore 18.75
+G_M35493_IG26:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp}, byref, isz
        ; byrRegs -[r14]
        mov      r14, rbp
        ; byrRegs +[r14]
@@ -891,8 +898,7 @@ G_M35493_IG26:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp
        sub      eax, dword ptr [rbx+0x58]
        cmp      eax, r13d
        jle      SHORT G_M35493_IG28
-       align    [2 bytes for IG27]
-						;; size=35 bbWeight=0.50 PerfScore 6.25
+						;; size=33 bbWeight=0.50 PerfScore 6.12
 G_M35493_IG27:        ; bbWeight=4, gcrefRegs=000A {rcx rbx}, byrefRegs=4020 {rbp r14}, loop=IG27, byref, isz
        mov      rax, rcx
        ; gcrRegs +[rax]
@@ -941,6 +947,7 @@ G_M35493_IG28:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=4020 {rbp
        movzx    rcx, cl
        or       ecx, eax
        je       SHORT G_M35493_IG29
+		  ;; NOP compensation instructions of 4 bytes.
        movzx    rcx, word  ptr [r14+0x04]
        xor      eax, eax
        cmp      ecx, 54
@@ -975,8 +982,9 @@ G_M35493_IG28:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=4020 {rbp
        cmp      r12d, esi
        ja       G_M35493_IG52
        jmp      G_M35493_IG38
-						;; size=191 bbWeight=0.50 PerfScore 18.75
-G_M35493_IG29:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp}, byref, isz, align
+       align    [0 bytes for IG30]
+						;; size=195 bbWeight=0.50 PerfScore 18.75
+G_M35493_IG29:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp}, byref, isz
        ; byrRegs -[r14]
        mov      r14, rbp
        ; byrRegs +[r14]
@@ -991,8 +999,7 @@ G_M35493_IG29:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp
        sub      eax, dword ptr [rbx+0x58]
        cmp      eax, r13d
        jle      SHORT G_M35493_IG31
-       align    [2 bytes for IG30]
-						;; size=35 bbWeight=0.50 PerfScore 6.25
+						;; size=33 bbWeight=0.50 PerfScore 6.12
 G_M35493_IG30:        ; bbWeight=4, gcrefRegs=000A {rcx rbx}, byrefRegs=4020 {rbp r14}, loop=IG30, byref, isz
...
benchmarks.run_tiered.windows.x64.checked.mch
-18 (-7.23%) : 49107.dasm - Benchstone.BenchI.Array2:Bench(int):ubyte (Tier1-OSR)
@@ -46,6 +46,7 @@ G_M17716_IG01:        ; bbWeight=0.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
 						;; size=81 bbWeight=0.01 PerfScore 0.16
 G_M17716_IG02:        ; bbWeight=0.01, gcrefRegs=0600 {r9 r10}, byrefRegs=0000 {}, byref, isz
        jmp      SHORT G_M17716_IG06
+       align    [0 bytes for IG08]
 						;; size=2 bbWeight=0.01 PerfScore 0.02
 G_M17716_IG03:        ; bbWeight=2, gcrefRegs=0600 {r9 r10}, byrefRegs=0000 {}, byref
        xor      r8d, r8d
@@ -60,17 +61,15 @@ G_M17716_IG06:        ; bbWeight=512, gcrefRegs=0600 {r9 r10}, byrefRegs=0000 {}
        cmp      eax, 10
        jge      SHORT G_M17716_IG09
 						;; size=5 bbWeight=512 PerfScore 640.00
-G_M17716_IG07:        ; bbWeight=64, gcrefRegs=0600 {r9 r10}, byrefRegs=0000 {}, byref, isz, align
+G_M17716_IG07:        ; bbWeight=64, gcrefRegs=0600 {r9 r10}, byrefRegs=0000 {}, byref, isz
        mov      r11d, dword ptr [r9+0x08]
        mov      ebx, r8d
        cmp      r8d, r11d
-       jae      G_M17716_IG14
+       jae      SHORT G_M17716_IG14
        mov      r11, gword ptr [r9+8*rbx+0x10]
        ; gcrRegs +[r11]
        mov      esi, edx
-       jmp      SHORT G_M17716_IG08
-       align    [8 bytes for IG08]
-						;; size=33 bbWeight=64 PerfScore 496.00
+						;; size=19 bbWeight=64 PerfScore 368.00
 G_M17716_IG08:        ; bbWeight=256, gcrefRegs=0E00 {r9 r10 r11}, byrefRegs=0000 {}, loop=IG08, byref, isz
        mov      rdi, r11
        ; gcrRegs +[rdi]
@@ -102,15 +101,15 @@ G_M17716_IG09:        ; bbWeight=512, gcrefRegs=0600 {r9 r10}, byrefRegs=0000 {}
        cmp      edx, 10
        jl       SHORT G_M17716_IG05
 						;; size=7 bbWeight=512 PerfScore 768.00
-G_M17716_IG10:        ; bbWeight=64, gcrefRegs=0600 {r9 r10}, byrefRegs=0000 {}, byref
+G_M17716_IG10:        ; bbWeight=64, gcrefRegs=0600 {r9 r10}, byrefRegs=0000 {}, byref, isz
        inc      r8d
        cmp      r8d, 10
        jl       SHORT G_M17716_IG04
 						;; size=9 bbWeight=64 PerfScore 96.00
-G_M17716_IG11:        ; bbWeight=8, gcrefRegs=0600 {r9 r10}, byrefRegs=0000 {}, byref
+G_M17716_IG11:        ; bbWeight=8, gcrefRegs=0600 {r9 r10}, byrefRegs=0000 {}, byref, isz
        dec      ecx
-       jne      G_M17716_IG03
-						;; size=8 bbWeight=8 PerfScore 10.00
+       jne      SHORT G_M17716_IG03
+						;; size=4 bbWeight=8 PerfScore 10.00
 G_M17716_IG12:        ; bbWeight=1, gcrefRegs=0600 {r9 r10}, byrefRegs=0000 {}, byref
        mov      rcx, r10
        ; gcrRegs +[rcx]
@@ -136,7 +135,7 @@ G_M17716_IG14:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 249, prolog size 81, PerfScore 9989.48, instruction count 66, allocated bytes for code 253 (MethodHash=aef8bacb) for method Benchstone.BenchI.Array2:Bench(int):ubyte (Tier1-OSR)
+; Total bytes of code 231, prolog size 81, PerfScore 9859.28, instruction count 65, allocated bytes for code 231 (MethodHash=aef8bacb) for method Benchstone.BenchI.Array2:Bench(int):ubyte (Tier1-OSR)
 ; ============================================================
 
 Unwind Info:
-5 (-3.09%) : 27011.dasm - AssignJagged:CopyToAssign(int[][],int[][]) (Tier1-OSR)
@@ -38,6 +38,7 @@ G_M3993_IG01:        ; bbWeight=0.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
 						;; size=51 bbWeight=0.01 PerfScore 0.10
 G_M3993_IG02:        ; bbWeight=0.01, gcrefRegs=0006 {rcx rdx}, byrefRegs=0000 {}, byref, isz
        jmp      SHORT G_M3993_IG04
+       align    [0 bytes for IG06]
 						;; size=2 bbWeight=0.01 PerfScore 0.02
 G_M3993_IG03:        ; bbWeight=2, gcrefRegs=0006 {rcx rdx}, byrefRegs=0000 {}, byref
        xor      eax, eax
@@ -46,7 +47,7 @@ G_M3993_IG04:        ; bbWeight=8, gcrefRegs=0006 {rcx rdx}, byrefRegs=0000 {},
        cmp      eax, 101
        jge      SHORT G_M3993_IG07
 						;; size=5 bbWeight=8 PerfScore 10.00
-G_M3993_IG05:        ; bbWeight=4, gcrefRegs=0006 {rcx rdx}, byrefRegs=0000 {}, byref, isz, align
+G_M3993_IG05:        ; bbWeight=4, gcrefRegs=0006 {rcx rdx}, byrefRegs=0000 {}, byref, isz
        mov      r10d, dword ptr [rdx+0x08]
        mov      r9d, r8d
        cmp      r8d, r10d
@@ -58,9 +59,7 @@ G_M3993_IG05:        ; bbWeight=4, gcrefRegs=0006 {rcx rdx}, byrefRegs=0000 {},
        jae      SHORT G_M3993_IG09
        mov      r9, gword ptr [rcx+8*r9+0x10]
        ; gcrRegs +[r9]
-       jmp      SHORT G_M3993_IG06
-       align    [3 bytes for IG06]
-						;; size=36 bbWeight=4 PerfScore 51.00
+						;; size=31 bbWeight=4 PerfScore 43.00
 G_M3993_IG06:        ; bbWeight=16, gcrefRegs=0606 {rcx rdx r9 r10}, byrefRegs=0000 {}, loop=IG06, byref, isz
        mov      r11, r10
        ; gcrRegs +[r11]
@@ -100,7 +99,7 @@ G_M3993_IG09:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 162, prolog size 51, PerfScore 310.57, instruction count 46, allocated bytes for code 162 (MethodHash=493af066) for method AssignJagged:CopyToAssign(int[][],int[][]) (Tier1-OSR)
+; Total bytes of code 157, prolog size 51, PerfScore 302.07, instruction count 45, allocated bytes for code 157 (MethodHash=493af066) for method AssignJagged:CopyToAssign(int[][],int[][]) (Tier1-OSR)
 ; ============================================================
 
 Unwind Info:
-6 (-2.33%) : 31661.dasm - Benchstone.MDBenchI.MDXposMatrix:Inner(int[,],int) (Tier1-OSR)
@@ -53,22 +53,21 @@ G_M6684_IG01:        ; bbWeight=0.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
 						;; size=82 bbWeight=0.01 PerfScore 0.14
 G_M6684_IG02:        ; bbWeight=0.01, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
        jmp      SHORT G_M6684_IG04
+       align    [0 bytes for IG06]
 						;; size=2 bbWeight=0.01 PerfScore 0.02
 G_M6684_IG03:        ; bbWeight=2, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
        mov      eax, 1
 						;; size=5 bbWeight=2 PerfScore 0.50
-G_M6684_IG04:        ; bbWeight=8, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
+G_M6684_IG04:        ; bbWeight=8, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
        cmp      eax, edx
-       jg       G_M6684_IG07
-						;; size=8 bbWeight=8 PerfScore 10.00
-G_M6684_IG05:        ; bbWeight=4, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
+       jg       SHORT G_M6684_IG07
+						;; size=4 bbWeight=8 PerfScore 10.00
+G_M6684_IG05:        ; bbWeight=4, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
        mov      r10d, dword ptr [rcx+0x18]
        mov      r9d, r8d
        sub      r9d, r10d
        mov      r11d, dword ptr [rcx+0x10]
-       jmp      SHORT G_M6684_IG06
-       align    [0 bytes for IG06]
-						;; size=16 bbWeight=4 PerfScore 26.00
+						;; size=14 bbWeight=4 PerfScore 18.00
 G_M6684_IG06:        ; bbWeight=16, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, loop=IG06, byref, isz
        mov      ebx, r9d
        cmp      ebx, r11d
@@ -130,7 +129,7 @@ G_M6684_IG09:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 258, prolog size 82, PerfScore 531.21, instruction count 71, allocated bytes for code 258 (MethodHash=f3f0e5e3) for method Benchstone.MDBenchI.MDXposMatrix:Inner(int[,],int) (Tier1-OSR)
+; Total bytes of code 252, prolog size 82, PerfScore 522.61, instruction count 70, allocated bytes for code 252 (MethodHash=f3f0e5e3) for method Benchstone.MDBenchI.MDXposMatrix:Inner(int[,],int) (Tier1-OSR)
 ; ============================================================
 
 Unwind Info:
+2 (+0.42%) : 14385.dasm - System.Linq.Enumerable:MinFloat[double](System.Collections.Generic.IEnumerable`1[double]):double (Tier1)
@@ -55,7 +55,7 @@ G_M43084_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      rdx, rcx
        ; gcrRegs +[rdx]
 						;; size=32 bbWeight=1 PerfScore 7.25
-G_M43084_IG02:        ; bbWeight=1, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byref, isz
+G_M43084_IG02:        ; bbWeight=1, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byref, isz, align
        test     rdx, rdx
        je       G_M43084_IG26
        mov      rcx, qword ptr [rdx]
@@ -66,8 +66,9 @@ G_M43084_IG02:        ; bbWeight=1, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byr
        ; byrRegs +[rax]
        mov      r8d, dword ptr [rdx+0x08]
        jmp      SHORT G_M43084_IG04
-						;; size=37 bbWeight=1 PerfScore 9.25
-G_M43084_IG03:        ; bbWeight=1, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byref
+       align    [2 bytes for IG05]
+						;; size=39 bbWeight=1 PerfScore 9.25
+G_M43084_IG03:        ; bbWeight=1, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byref, isz
        ; byrRegs -[rax]
        mov      rax, 0xD1FFAB1E      ; System.Collections.Generic.List`1[double]
        cmp      rcx, rax
@@ -87,7 +88,6 @@ G_M43084_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {rax}, byr
        mov      ecx, 1
        cmp      r8d, 1
        jbe      SHORT G_M43084_IG09
-       align    [0 bytes for IG05]
 						;; size=24 bbWeight=1 PerfScore 6.75
 G_M43084_IG05:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0001 {rax}, byref, isz
        cmp      ecx, r8d
@@ -272,7 +272,7 @@ G_M43084_IG31:        ; bbWeight=1, funclet epilog, nogc, extend
        ret      
 						;; size=12 bbWeight=1 PerfScore 5.75
 
-; Total bytes of code 479, prolog size 32, PerfScore 348.80, instruction count 126, allocated bytes for code 483 (MethodHash=4b6c57b3) for method System.Linq.Enumerable:MinFloat[double](System.Collections.Generic.IEnumerable`1[double]):double (Tier1)
+; Total bytes of code 481, prolog size 32, PerfScore 348.60, instruction count 126, allocated bytes for code 481 (MethodHash=4b6c57b3) for method System.Linq.Enumerable:MinFloat[double](System.Collections.Generic.IEnumerable`1[double]):double (Tier1)
 ; ============================================================
 
 Unwind Info:
+11 (+0.72%) : 27877.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
@@ -240,7 +240,7 @@ G_M14182_IG07:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
 						;; size=15 bbWeight=0.50 PerfScore 3.62
-G_M14182_IG08:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M14182_IG08:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        mov      r9, gword ptr [rbx+0x20]
        ; gcrRegs +[r9]
        mov      ecx, dword ptr [rbx+0x58]
@@ -261,6 +261,7 @@ G_M14182_IG08:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
        jmp      G_M14182_IG27
+       align    [0 bytes for IG11]
 						;; size=62 bbWeight=0.50 PerfScore 10.62
 G_M14182_IG09:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp}, byref, isz
        ; byrRegs +[rbp]
@@ -284,7 +285,6 @@ G_M14182_IG10:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=8020 {rbp
        sub      edx, dword ptr [rbx+0x58]
        cmp      edx, r13d
        jle      SHORT G_M14182_IG12
-       align    [0 bytes for IG11]
 						;; size=15 bbWeight=0.50 PerfScore 4.12
 G_M14182_IG11:        ; bbWeight=4, gcrefRegs=000A {rcx rbx}, byrefRegs=8020 {rbp r15}, loop=IG11, byref, isz
        mov      rdx, rcx
@@ -366,7 +366,7 @@ G_M14182_IG14:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
 						;; size=15 bbWeight=0.50 PerfScore 3.62
-G_M14182_IG15:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M14182_IG15:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz, align
        mov      r9, gword ptr [rbx+0x20]
        ; gcrRegs +[r9]
        mov      ecx, dword ptr [rbx+0x58]
@@ -387,7 +387,8 @@ G_M14182_IG15:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
        jmp      G_M14182_IG27
-						;; size=62 bbWeight=0.50 PerfScore 10.62
+       align    [4 bytes for IG18]
+						;; size=66 bbWeight=0.50 PerfScore 10.62
 G_M14182_IG16:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp}, byref, isz
        ; byrRegs +[rbp]
        mov      r15, rbp
@@ -403,15 +404,14 @@ G_M14182_IG16:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
 						;; size=30 bbWeight=0.50 PerfScore 2.62
-G_M14182_IG17:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=8020 {rbp r15}, byref, isz, align
+G_M14182_IG17:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=8020 {rbp r15}, byref, isz
        mov      rcx, gword ptr [rbx+0x20]
        ; gcrRegs +[rcx]
        mov      eax, dword ptr [rcx+0x08]
        sub      eax, dword ptr [rbx+0x58]
        cmp      eax, r13d
        jle      SHORT G_M14182_IG19
-       align    [4 bytes for IG18]
-						;; size=19 bbWeight=0.50 PerfScore 4.25
+						;; size=15 bbWeight=0.50 PerfScore 4.12
 G_M14182_IG18:        ; bbWeight=4, gcrefRegs=000A {rcx rbx}, byrefRegs=8020 {rbp r15}, loop=IG18, byref, isz
        mov      rax, rcx
        ; gcrRegs +[rax]
@@ -459,7 +459,7 @@ G_M14182_IG19:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=8020 {rbp
        movzx    rcx, word  ptr [r15+0x08]
        add      ecx, -49
        cmp      ecx, 0x1EDC
-       jae      SHORT G_M14182_IG22
+       jae      G_M14182_IG22
        lea      r14d, [rdi+0x05]
        cmp      r14d, esi
        ja       G_M14182_IG36
@@ -476,7 +476,7 @@ G_M14182_IG19:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=8020 {rbp
        jge      SHORT G_M14182_IG20
        mov      esi, edi
        mov      ebp, r14d
-						;; size=148 bbWeight=0.50 PerfScore 13.50
+						;; size=152 bbWeight=0.50 PerfScore 13.50
 G_M14182_IG20:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        cmp      dword ptr [rbx+0x58], 0
        jne      SHORT G_M14182_IG21
@@ -486,7 +486,7 @@ G_M14182_IG20:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
 						;; size=15 bbWeight=0.50 PerfScore 3.62
-G_M14182_IG21:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M14182_IG21:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz, align
        mov      r9, gword ptr [rbx+0x20]
        ; gcrRegs +[r9]
        mov      ecx, dword ptr [rbx+0x58]
@@ -507,7 +507,8 @@ G_M14182_IG21:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
        jmp      G_M14182_IG27
-						;; size=62 bbWeight=0.50 PerfScore 10.62
+       align    [7 bytes for IG23]
+						;; size=69 bbWeight=0.50 PerfScore 10.62
 G_M14182_IG22:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp}, byref, isz
        ; byrRegs +[rbp]
        mov      r12d, esi
@@ -525,7 +526,6 @@ G_M14182_IG22:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp
        sub      eax, dword ptr [rbx+0x58]
        cmp      eax, r13d
        jle      SHORT G_M14182_IG24
-       align    [0 bytes for IG23]
 						;; size=38 bbWeight=0.50 PerfScore 6.50
 G_M14182_IG23:        ; bbWeight=4, gcrefRegs=000A {rcx rbx}, byrefRegs=8000 {r15}, loop=IG23, byref, isz
        ; byrRegs -[rbp]
@@ -732,7 +732,7 @@ G_M14182_IG36:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
 						;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1524, prolog size 19, PerfScore 746.40, instruction count 406, allocated bytes for code 1524 (MethodHash=fe54c899) for method System.Text.RegularExpressions.CompiledRegexRunner:Regex1_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
+; Total bytes of code 1535, prolog size 19, PerfScore 747.38, instruction count 406, allocated bytes for code 1535 (MethodHash=fe54c899) for method System.Text.RegularExpressions.CompiledRegexRunner:Regex1_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
 ; ============================================================
 
 Unwind Info:
+26 (+0.77%) : 27879.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex2_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
@@ -355,7 +355,7 @@ G_M35493_IG07:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
 						;; size=15 bbWeight=0.50 PerfScore 3.62
-G_M35493_IG08:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M35493_IG08:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        mov      r9, gword ptr [rbx+0x20]
        ; gcrRegs +[r9]
        mov      ecx, dword ptr [rbx+0x58]
@@ -376,6 +376,7 @@ G_M35493_IG08:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
        jmp      G_M35493_IG40
+       align    [0 bytes for IG11]
 						;; size=62 bbWeight=0.50 PerfScore 10.62
 G_M35493_IG09:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp}, byref, isz
        ; byrRegs +[rbp]
@@ -399,7 +400,6 @@ G_M35493_IG10:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=1020 {rbp
        sub      edx, dword ptr [rbx+0x58]
        cmp      edx, r13d
        jle      SHORT G_M35493_IG12
-       align    [0 bytes for IG11]
 						;; size=15 bbWeight=0.50 PerfScore 4.12
 G_M35493_IG11:        ; bbWeight=4, gcrefRegs=000A {rcx rbx}, byrefRegs=1020 {rbp r12}, loop=IG11, byref, isz
        mov      rdx, rcx
@@ -490,13 +490,14 @@ G_M35493_IG12:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=1020 {rbp
        mov      rdx, 0xD1FFAB1E
        ; gcrRegs +[rdx]
 						;; size=240 bbWeight=0.50 PerfScore 19.38
-G_M35493_IG13:        ; bbWeight=0.50, extend
+G_M35493_IG13:        ; bbWeight=0.50, isz, extend, align
        call     [<unknown method>]
        ; gcrRegs -[rcx rdx]
        ; byrRegs -[rbp r12]
        ; gcr arg pop 0
        jmp      G_M35493_IG40
-						;; size=11 bbWeight=0.50 PerfScore 2.50
+       align    [2 bytes for IG16]
+						;; size=13 bbWeight=0.50 PerfScore 2.50
 G_M35493_IG14:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp}, byref, isz
        ; byrRegs +[rbp]
        mov      r12, rbp
@@ -512,15 +513,14 @@ G_M35493_IG14:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
 						;; size=37 bbWeight=0.50 PerfScore 2.62
-G_M35493_IG15:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=1020 {rbp r12}, byref, isz, align
+G_M35493_IG15:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=1020 {rbp r12}, byref, isz
        mov      rcx, gword ptr [rbx+0x20]
        ; gcrRegs +[rcx]
        mov      eax, dword ptr [rcx+0x08]
        sub      eax, dword ptr [rbx+0x58]
        cmp      eax, r13d
        jle      SHORT G_M35493_IG17
-       align    [2 bytes for IG16]
-						;; size=17 bbWeight=0.50 PerfScore 4.25
+						;; size=15 bbWeight=0.50 PerfScore 4.12
 G_M35493_IG16:        ; bbWeight=4, gcrefRegs=000A {rcx rbx}, byrefRegs=1020 {rbp r12}, loop=IG16, byref, isz
        mov      rax, rcx
        ; gcrRegs +[rax]
@@ -545,7 +545,7 @@ G_M35493_IG16:        ; bbWeight=4, gcrefRegs=000A {rcx rbx}, byrefRegs=1020 {rb
        cmp      eax, r13d
        jg       SHORT G_M35493_IG16
 						;; size=62 bbWeight=4 PerfScore 112.00
-G_M35493_IG17:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=1020 {rbp r12}, byref, isz
+G_M35493_IG17:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=1020 {rbp r12}, byref, isz, align
        ; gcrRegs -[rcx rdx]
        cmp      r14d, 4
        jbe      G_M35493_IG18
@@ -568,7 +568,7 @@ G_M35493_IG17:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=1020 {rbp
        setb     al
        movzx    rax, al
        or       ecx, eax
-       je       SHORT G_M35493_IG18
+       je       G_M35493_IG18
        movzx    r15, word  ptr [r12+0x04]
        xor      ecx, ecx
        cmp      r15d, 97
@@ -603,7 +603,8 @@ G_M35493_IG17:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=1020 {rbp
        cmp      r14d, esi
        ja       G_M35493_IG49
        jmp      G_M35493_IG39
-						;; size=206 bbWeight=0.50 PerfScore 19.38
+       align    [5 bytes for IG19]
+						;; size=215 bbWeight=0.50 PerfScore 19.38
 G_M35493_IG18:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp}, byref, isz
        ; byrRegs -[r12]
        mov      r12, rbp
@@ -622,7 +623,6 @@ G_M35493_IG18:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp
        sub      eax, dword ptr [rbx+0x58]
        cmp      eax, r13d
        jle      SHORT G_M35493_IG20
-       align    [0 bytes for IG19]
 						;; size=43 bbWeight=0.50 PerfScore 6.62
 G_M35493_IG19:        ; bbWeight=4, gcrefRegs=000A {rcx rbx}, byrefRegs=1020 {rbp r12}, loop=IG19, byref, isz
        mov      rax, rcx
@@ -672,6 +672,7 @@ G_M35493_IG20:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=1020 {rbp
        movzx    rcx, cl
        or       ecx, eax
        je       SHORT G_M35493_IG21
+		  ;; NOP compensation instructions of 4 bytes.
        movzx    rcx, word  ptr [r12+0x04]
        xor      eax, eax
        cmp      ecx, 57
@@ -706,8 +707,9 @@ G_M35493_IG20:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=1020 {rbp
        cmp      r14d, esi
        ja       G_M35493_IG49
        jmp      G_M35493_IG39
-						;; size=196 bbWeight=0.50 PerfScore 18.75
-G_M35493_IG21:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp}, byref, isz, align
+       align    [0 bytes for IG22]
+						;; size=200 bbWeight=0.50 PerfScore 18.75
+G_M35493_IG21:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp}, byref, isz
        ; byrRegs -[r12]
        mov      r12, rbp
        ; byrRegs +[r12]
@@ -722,8 +724,7 @@ G_M35493_IG21:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp
        sub      eax, dword ptr [rbx+0x58]
        cmp      eax, r13d
        jle      SHORT G_M35493_IG23
-       align    [6 bytes for IG22]
-						;; size=39 bbWeight=0.50 PerfScore 6.25
+						;; size=33 bbWeight=0.50 PerfScore 6.12
 G_M35493_IG22:        ; bbWeight=4, gcrefRegs=000A {rcx rbx}, byrefRegs=1020 {rbp r12}, loop=IG22, byref, isz
        mov      rax, rcx
        ; gcrRegs +[rax]
@@ -748,7 +749,7 @@ G_M35493_IG22:        ; bbWeight=4, gcrefRegs=000A {rcx rbx}, byrefRegs=1020 {rb
        cmp      eax, r13d
        jg       SHORT G_M35493_IG22
 						;; size=62 bbWeight=4 PerfScore 112.00
-G_M35493_IG23:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=1020 {rbp r12}, byref, isz
+G_M35493_IG23:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=1020 {rbp r12}, byref, isz, align
        ; gcrRegs -[rcx rdx]
        cmp      r14d, 4
        jbe      G_M35493_IG24
@@ -772,6 +773,7 @@ G_M35493_IG23:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=1020 {rbp
        movzx    rcx, cl
        or       ecx, eax
        je       SHORT G_M35493_IG24
+		  ;; NOP compensation instructions of 4 bytes.
        movzx    rcx, word  ptr [r12+0x04]
        xor      eax, eax
        cmp      ecx, 56
@@ -806,7 +808,8 @@ G_M35493_IG23:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=1020 {rbp
        cmp      r14d, esi
        ja       G_M35493_IG49
        jmp      G_M35493_IG39
-						;; size=196 bbWeight=0.50 PerfScore 18.75
+       align    [2 bytes for IG25]
+						;; size=202 bbWeight=0.50 PerfScore 18.75
 G_M35493_IG24:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp}, byref, isz
        ; byrRegs -[r12]
        mov      r12, rbp
@@ -822,7 +825,6 @@ G_M35493_IG24:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp
        sub      eax, dword ptr [rbx+0x58]
        cmp      eax, r13d
        jle      SHORT G_M35493_IG26
-       align    [0 bytes for IG25]
 						;; size=33 bbWeight=0.50 PerfScore 6.12
 G_M35493_IG25:        ; bbWeight=4, gcrefRegs=000A {rcx rbx}, byrefRegs=1020 {rbp r12}, loop=IG25, byref, isz
        mov      rax, rcx
@@ -872,6 +874,7 @@ G_M35493_IG26:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=1020 {rbp
        movzx    rcx, cl
        or       ecx, eax
        je       SHORT G_M35493_IG27
+		  ;; NOP compensation instructions of 4 bytes.
        movzx    rcx, word  ptr [r12+0x04]
        xor      eax, eax
        cmp      ecx, 55
@@ -906,7 +909,8 @@ G_M35493_IG26:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=1020 {rbp
        cmp      r14d, esi
        ja       G_M35493_IG49
        jmp      G_M35493_IG39
-						;; size=196 bbWeight=0.50 PerfScore 18.75
+       align    [0 bytes for IG28]
+						;; size=200 bbWeight=0.50 PerfScore 18.75
 G_M35493_IG27:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp}, byref, isz
        ; byrRegs -[r12]
        mov      r12, rbp
@@ -922,7 +926,6 @@ G_M35493_IG27:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp
        sub      eax, dword ptr [rbx+0x58]
        cmp      eax, r13d
        jle      SHORT G_M35493_IG29
-       align    [0 bytes for IG28]
 						;; size=33 bbWeight=0.50 PerfScore 6.12
 G_M35493_IG28:        ; bbWeight=4, gcrefRegs=000A {rcx rbx}, byrefRegs=1020 {rbp r12}, loop=IG28, byref, isz
        mov      rax, rcx
@@ -948,7 +951,7 @@ G_M35493_IG28:        ; bbWeight=4, gcrefRegs=000A {rcx rbx}, byrefRegs=1020 {rb
        cmp      eax, r13d
        jg       SHORT G_M35493_IG28
 						;; size=62 bbWeight=4 PerfScore 112.00
-G_M35493_IG29:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=1020 {rbp r12}, byref, isz
+G_M35493_IG29:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=1020 {rbp r12}, byref, isz, align
        ; gcrRegs -[rcx rdx]
        cmp      r14d, 4
        jbe      G_M35493_IG30
@@ -972,6 +975,7 @@ G_M35493_IG29:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=1020 {rbp
        movzx    rcx, cl
        or       ecx, eax
        je       SHORT G_M35493_IG30
+		  ;; NOP compensation instructions of 4 bytes.
        movzx    rcx, word  ptr [r12+0x04]
        xor      eax, eax
        cmp      ecx, 54
@@ -1006,8 +1010,9 @@ G_M35493_IG29:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=1020 {rbp
        cmp      r14d, esi
        ja       G_M35493_IG49
        jmp      G_M35493_IG39
-						;; size=196 bbWeight=0.50 PerfScore 18.75
-G_M35493_IG30:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp}, byref, isz, align
+       align    [2 bytes for IG31]
+						;; size=202 bbWeight=0.50 PerfScore 18.75
+G_M35493_IG30:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp}, byref, isz
        ; byrRegs -[r12]
        mov      r12, rbp
        ; byrRegs +[r12]
@@ -1022,8 +1027,7 @@ G_M35493_IG30:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp
        sub      eax, dword ptr [rbx+0x58]
        cmp      eax, r13d
        jle      SHORT G_M35493_IG32
-       align    [7 bytes for IG31]
-						;; size=40 bbWeight=0.50 PerfScore 6.25
+						;; size=33 bbWeight=0.50 PerfScore 6.12
 G_M35493_IG31:        ; bbWeight=4, gcrefRegs=000A {rcx rbx}, byrefRegs=1020 {rbp r12}, loop=IG31, byref, isz
        mov      rax, rcx
        ; gcrRegs +[rax]
@@ -1072,6 +1076,7 @@ G_M35493_IG32:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=1020 {rbp
        movzx    rcx, cl
        or       ecx, eax
        je       SHORT G_M35493_IG33
+		  ;; NOP compensation instructions of 4 bytes.
        movzx    rcx, word  ptr [r12+0x04]
        xor      eax, eax
        cmp      ecx, 53
@@ -1106,7 +1111,8 @@ G_M35493_IG32:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=1020 {rbp
        cmp      r14d, esi
        ja       G_M35493_IG49
        jmp      G_M35493_IG39
-						;; size=196 bbWeight=0.50 PerfScore 18.75
+       align    [0 bytes for IG34]
+						;; size=200 bbWeight=0.50 PerfScore 18.75
 G_M35493_IG33:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp}, byref, isz
        ; byrRegs -[r12]
        mov      r12, rbp
@@ -1122,7 +1128,6 @@ G_M35493_IG33:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0020 {rbp
        sub      eax, dword ptr [rbx+0x58]
        cmp      eax, r13d
        jle      SHORT G_M35493_IG35
-       align    [0 bytes for IG34]
 						;; size=33 bbWeight=0.50 PerfScore 6.12
...
coreclr_tests.run.windows.x64.checked.mch
-16 (-2.56%) : 172650.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:EnsureNullableAttributeExists(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.Symbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder) (FullOpts)
@@ -208,6 +208,7 @@ G_M54037_IG11:        ; bbWeight=2, gcrefRegs=50C8 {rbx rsi rdi r12 r14}, byrefR
        ; gcrRegs -[rax]
        test     rsi, rsi
        je       SHORT G_M54037_IG14
+		  ;; NOP compensation instructions of 4 bytes.
        mov      ecx, dword ptr [rsi+0x120]
        mov      rdx, gword ptr [rsi+0xA8]
        ; gcrRegs +[rdx]
@@ -232,7 +233,7 @@ G_M54037_IG11:        ; bbWeight=2, gcrefRegs=50C8 {rbx rsi rdi r12 r14}, byrefR
        lea      rcx, bword ptr [rsi+0x120]
        ; byrRegs +[rcx]
        jmp      SHORT G_M54037_IG12
-       align    [8 bytes for IG12]
+       align    [4 bytes for IG12]
 						;; size=90 bbWeight=2 PerfScore 37.00
 G_M54037_IG12:        ; bbWeight=16, gcrefRegs=40C8 {rbx rsi rdi r14}, byrefRegs=0002 {rcx}, loop=IG12, byref, isz
        mov      eax, dword ptr [rcx]
@@ -249,8 +250,9 @@ G_M54037_IG12:        ; bbWeight=16, gcrefRegs=40C8 {rbx rsi rdi r14}, byrefRegs
 G_M54037_IG13:        ; bbWeight=2, gcrefRegs=40C8 {rbx rsi rdi r14}, byrefRegs=0000 {}, byref, isz
        ; byrRegs -[rcx]
        jmp      SHORT G_M54037_IG17
+       align    [0 bytes for IG15]
 						;; size=2 bbWeight=2 PerfScore 4.00
-G_M54037_IG14:        ; bbWeight=2, gcrefRegs=50C8 {rbx rsi rdi r12 r14}, byrefRegs=0000 {}, byref, isz, align
+G_M54037_IG14:        ; bbWeight=2, gcrefRegs=50C8 {rbx rsi rdi r12 r14}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[r12]
        mov      rcx, r12
        ; gcrRegs +[rcx]
@@ -278,9 +280,7 @@ G_M54037_IG14:        ; bbWeight=2, gcrefRegs=50C8 {rbx rsi rdi r12 r14}, byrefR
        je       SHORT G_M54037_IG16
        lea      rdx, bword ptr [rbx+0x16C]
        ; byrRegs +[rdx]
-       jmp      SHORT G_M54037_IG15
-       align    [14 bytes for IG15]
-						;; size=71 bbWeight=2 PerfScore 35.00
+						;; size=55 bbWeight=2 PerfScore 31.00
 G_M54037_IG15:        ; bbWeight=16, gcrefRegs=40C8 {rbx rsi rdi r14}, byrefRegs=0004 {rdx}, loop=IG15, byref, isz
        mov      eax, dword ptr [rdx]
        mov      dword ptr [rbp-0x58], eax
@@ -321,7 +321,7 @@ G_M54037_IG18:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        ret      
 						;; size=20 bbWeight=1 PerfScore 5.25
 
-; Total bytes of code 625, prolog size 68, PerfScore 1179.08, instruction count 157, allocated bytes for code 625 (MethodHash=4a2a2cea) for method Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:EnsureNullableAttributeExists(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.Symbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder) (FullOpts)
+; Total bytes of code 609, prolog size 68, PerfScore 1173.48, instruction count 156, allocated bytes for code 609 (MethodHash=4a2a2cea) for method Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:EnsureNullableAttributeExists(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.Symbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder) (FullOpts)
 ; ============================================================
 
 Unwind Info:
-10 (-2.17%) : 20089.dasm - StructABI:EchoInlineArray4Wrapper():ubyte (FullOpts)
@@ -131,6 +131,7 @@ G_M42575_IG06:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, loop=I
 G_M42575_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        ; byrRegs -[r10]
        jmp      SHORT G_M42575_IG09
+       align    [0 bytes for IG10]
 						;; size=2 bbWeight=0.50 PerfScore 1.00
 G_M42575_IG08:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      rcx, 0xD1FFAB1E
@@ -140,7 +141,7 @@ G_M42575_IG08:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcr arg pop 0
        xor      esi, esi
 						;; size=18 bbWeight=1 PerfScore 3.50
-G_M42575_IG09:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz, align
+G_M42575_IG09:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      rcx, qword ptr [rbp-0x60]
        mov      qword ptr [rbp-0x80], rcx
        mov      cx, word  ptr [rbp-0x58]
@@ -148,9 +149,7 @@ G_M42575_IG09:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        lea      rcx, bword ptr [rbp-0x50]
        ; byrRegs +[rcx]
        xor      eax, eax
-       jmp      SHORT G_M42575_IG10
-       align    [8 bytes for IG10]
-						;; size=32 bbWeight=1 PerfScore 6.75
+						;; size=22 bbWeight=1 PerfScore 4.75
 G_M42575_IG10:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, loop=IG10, byref, isz
        ; byrRegs -[rcx]
        movsxd   rdx, eax
@@ -199,7 +198,7 @@ G_M42575_IG15:        ; bbWeight=1, epilog, nogc, extend
        ret      
 						;; size=20 bbWeight=1 PerfScore 5.25
 
-; Total bytes of code 460, prolog size 50, PerfScore 196.83, instruction count 108, allocated bytes for code 460 (MethodHash=b6ba59b0) for method StructABI:EchoInlineArray4Wrapper():ubyte (FullOpts)
+; Total bytes of code 450, prolog size 50, PerfScore 193.83, instruction count 107, allocated bytes for code 450 (MethodHash=b6ba59b0) for method StructABI:EchoInlineArray4Wrapper():ubyte (FullOpts)
 ; ============================================================
 
 Unwind Info:
-8 (-1.99%) : 172512.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:LazyMethodChecks():this (FullOpts)
@@ -93,12 +93,12 @@ G_M360_IG06:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0004 {rdx}, loop=
        mov      r8d, eax
        or       r8d, 0x2000
        cmp      r8d, eax
-       je       G_M360_IG13
+       je       SHORT G_M360_IG13
        lock     
        cmpxchg  dword ptr [rdx], r8d
        cmp      eax, dword ptr [rbp-0x14]
        jne      SHORT G_M360_IG06
-						;; size=34 bbWeight=4 PerfScore 103.00
+						;; size=30 bbWeight=4 PerfScore 103.00
 G_M360_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        ; byrRegs -[rdx]
        mov      rax, 0xD1FFAB1E      ; const ptr
@@ -110,6 +110,7 @@ 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
 G_M360_IG08:        ; bbWeight=0, gcVars=0000000000000800 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[rax]
@@ -139,15 +140,13 @@ G_M360_IG09:        ; bbWeight=0.50, gcVars=0000000000000940 {V00 V01 V03}, gcre
        ; gcr arg pop 0
        nop      
 						;; size=31 bbWeight=0.50 PerfScore 6.75
-G_M360_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz, align
+G_M360_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      rcx, gword ptr [rbp+0x10]
        ; gcrRegs +[rcx]
        add      rcx, 108
        ; gcrRegs -[rcx]
        ; byrRegs +[rcx]
-       jmp      SHORT G_M360_IG11
-       align    [2 bytes for IG11]
-						;; size=12 bbWeight=0.50 PerfScore 1.62
+						;; size=8 bbWeight=0.50 PerfScore 0.62
 G_M360_IG11:        ; bbWeight=4, gcVars=0000000000000900 {V01 V03}, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, loop=IG11, gcvars, byref, isz
        ; GC ptr vars -{V00 V06 V08}
        mov      eax, dword ptr [rcx]
@@ -266,7 +265,7 @@ G_M360_IG24:        ; bbWeight=0, funclet epilog, nogc, extend
        ret      
 						;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 403, prolog size 25, PerfScore 289.05, instruction count 126, allocated bytes for code 403 (MethodHash=9b5bfe97) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:LazyMethodChecks():this (FullOpts)
+; 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)
 ; ============================================================
 
 Unwind Info:
+9 (+0.50%) : 449574.dasm - AssignJagged:second_assignments(int[][],short[][]) (Tier1)
@@ -172,10 +172,10 @@ G_M6376_IG18:        ; bbWeight=1.01, gcrefRegs=00C1 {rax rsi rdi}, byrefRegs=00
        cmp      word  ptr [rdi+2*r8+0x10], 0
        je       G_M6376_IG69
 						;; size=25 bbWeight=1.01 PerfScore 5.56
-G_M6376_IG19:        ; bbWeight=0.28, gcrefRegs=00C1 {rax rsi rdi}, byrefRegs=0000 {}, byref, isz, align
+G_M6376_IG19:        ; bbWeight=0.28, gcrefRegs=00C1 {rax rsi rdi}, byrefRegs=0000 {}, byref, align
        jmp      G_M6376_IG36
-       align    [3 bytes for IG32]
-						;; size=8 bbWeight=0.28 PerfScore 0.56
+       align    [15 bytes for IG32]
+						;; size=20 bbWeight=0.28 PerfScore 0.56
 G_M6376_IG20:        ; bbWeight=4.02, gcrefRegs=00C9 {rax rbx rsi rdi}, byrefRegs=0000 {}, byref
        ; gcrRegs +[rbx]
        xor      r8d, r8d
@@ -231,11 +231,12 @@ G_M6376_IG28:        ; bbWeight=249.97, gcrefRegs=00C9 {rax rbx rsi rdi}, byrefR
 G_M6376_IG29:        ; bbWeight=2.48, gcrefRegs=00C9 {rax rbx rsi rdi}, byrefRegs=0000 {}, byref
        jmp      G_M6376_IG45
 						;; size=5 bbWeight=2.48 PerfScore 4.95
-G_M6376_IG30:        ; bbWeight=49.01, gcrefRegs=00C9 {rax rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
+G_M6376_IG30:        ; bbWeight=49.01, gcrefRegs=00C9 {rax rbx rsi rdi}, byrefRegs=0000 {}, byref
        xor      r9d, r9d
        cmp      r10d, ecx
        jbe      SHORT G_M6376_IG40
-						;; size=8 bbWeight=49.01 PerfScore 73.51
+		  ;; NOP compensation instructions of 4 bytes.
+						;; size=12 bbWeight=49.01 PerfScore 73.51
 G_M6376_IG31:        ; bbWeight=48.52, gcrefRegs=00C9 {rax rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
        mov      r11d, ecx
        mov      r11, gword ptr [rsi+8*r11+0x10]
@@ -272,6 +273,7 @@ G_M6376_IG36:        ; bbWeight=0.28, gcrefRegs=00C1 {rax rsi rdi}, byrefRegs=00
        ; gcrRegs -[rbx r11]
        xor      r9d, r9d
        jmp      SHORT G_M6376_IG38
+       align    [0 bytes for IG50]
 						;; size=5 bbWeight=0.28 PerfScore 0.63
 G_M6376_IG37:        ; bbWeight=0.31, gcrefRegs=00C9 {rax rbx rsi rdi}, byrefRegs=0000 {}, byref
        ; gcrRegs +[rbx]
@@ -339,9 +341,8 @@ G_M6376_IG47:        ; bbWeight=249.97, gcrefRegs=00C9 {rax rbx rsi rdi}, byrefR
        cmp      r9d, 101
        jl       SHORT G_M6376_IG46
 						;; size=9 bbWeight=249.97 PerfScore 374.96
-G_M6376_IG48:        ; bbWeight=2.48, gcrefRegs=00C9 {rax rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
+G_M6376_IG48:        ; bbWeight=2.48, gcrefRegs=00C9 {rax rbx rsi rdi}, byrefRegs=0000 {}, byref
        jmp      G_M6376_IG67
-       align    [0 bytes for IG50]
 						;; size=5 bbWeight=2.48 PerfScore 4.95
 G_M6376_IG49:        ; bbWeight=36.13, gcrefRegs=00C9 {rax rbx rsi rdi}, byrefRegs=0000 {}, byref
        xor      ecx, ecx
@@ -467,6 +468,7 @@ G_M6376_IG66:        ; bbWeight=0.15, gcrefRegs=00C9 {rax rbx rsi rdi}, byrefReg
        inc      r8d
        movsx    r8, r8w
        jmp      SHORT G_M6376_IG64
+       align    [0 bytes for IG78]
 						;; size=29 bbWeight=0.15 PerfScore 0.77
 G_M6376_IG67:        ; bbWeight=2.50, gcrefRegs=00C9 {rax rbx rsi rdi}, byrefRegs=0000 {}, byref
        test     r8d, r8d
@@ -505,9 +507,8 @@ G_M6376_IG74:        ; bbWeight=99.99, gcrefRegs=00C1 {rax rsi rdi}, byrefRegs=0
        cmp      ecx, 101
        jl       SHORT G_M6376_IG73
 						;; size=7 bbWeight=99.99 PerfScore 149.98
-G_M6376_IG75:        ; bbWeight=0.99, gcrefRegs=00C1 {rax rsi rdi}, byrefRegs=0000 {}, byref, isz
+G_M6376_IG75:        ; bbWeight=0.99, gcrefRegs=00C1 {rax rsi rdi}, byrefRegs=0000 {}, byref
        jmp      G_M6376_IG91
-       align    [0 bytes for IG78]
 						;; size=5 bbWeight=0.99 PerfScore 1.98
 G_M6376_IG76:        ; bbWeight=27.72, gcrefRegs=00C1 {rax rsi rdi}, byrefRegs=0000 {}, byref, isz
        xor      r9d, r9d
@@ -599,6 +600,7 @@ G_M6376_IG88:        ; bbWeight=0.06, gcrefRegs=01C1 {rax rsi rdi r8}, byrefRegs
        mov      edx, r9d
        mov      edx, dword ptr [r11+4*rdx+0x10]
        jmp      SHORT G_M6376_IG87
+       align    [0 bytes for IG98]
 						;; size=23 bbWeight=0.06 PerfScore 0.55
 G_M6376_IG89:        ; bbWeight=1.01, gcrefRegs=00C1 {rax rsi rdi}, byrefRegs=0000 {}, byref
        ; gcrRegs -[r8 r11]
@@ -633,9 +635,8 @@ G_M6376_IG94:        ; bbWeight=99.99, gcrefRegs=00C1 {rax rsi rdi}, byrefRegs=0
        cmp      ecx, 101
        jl       SHORT G_M6376_IG93
 						;; size=7 bbWeight=99.99 PerfScore 149.98
-G_M6376_IG95:        ; bbWeight=0.99, gcrefRegs=00C1 {rax rsi rdi}, byrefRegs=0000 {}, byref, isz
+G_M6376_IG95:        ; bbWeight=0.99, gcrefRegs=00C1 {rax rsi rdi}, byrefRegs=0000 {}, byref
        jmp      G_M6376_IG110
-       align    [0 bytes for IG98]
 						;; size=5 bbWeight=0.99 PerfScore 1.98
 G_M6376_IG96:        ; bbWeight=27.72, gcrefRegs=00C1 {rax rsi rdi}, byrefRegs=0000 {}, byref
        xor      r9d, r9d
@@ -703,10 +704,9 @@ G_M6376_IG105:        ; bbWeight=28.28, gcrefRegs=00C1 {rax rsi rdi}, byrefRegs=
        cmp      r9d, 101
        jl       SHORT G_M6376_IG103
 						;; size=9 bbWeight=28.28 PerfScore 42.42
-G_M6376_IG106:        ; bbWeight=1.01, gcrefRegs=00C1 {rax rsi rdi}, byrefRegs=0000 {}, byref, isz, align
+G_M6376_IG106:        ; bbWeight=1.01, gcrefRegs=00C1 {rax rsi rdi}, byrefRegs=0000 {}, byref
        jmp      G_M6376_IG90
-       align    [7 bytes for IG115]
-						;; size=12 bbWeight=1.01 PerfScore 2.02
+						;; size=5 bbWeight=1.01 PerfScore 2.02
 G_M6376_IG107:        ; bbWeight=0.07, gcrefRegs=00C1 {rax rsi rdi}, byrefRegs=0000 {}, byref, isz
        cmp      ecx, r10d
        jae      G_M6376_IG131
@@ -717,6 +717,7 @@ G_M6376_IG107:        ; bbWeight=0.07, gcrefRegs=00C1 {rax rsi rdi}, byrefRegs=0
        mov      edx, r9d
        mov      edx, dword ptr [r11+4*rdx+0x10]
        jmp      SHORT G_M6376_IG105
+       align    [0 bytes for IG115]
 						;; size=34 bbWeight=0.07 PerfScore 0.75
 G_M6376_IG108:        ; bbWeight=23.60, gcrefRegs=00C1 {rax rsi rdi}, byrefRegs=0000 {}, byref
        ; gcrRegs -[r11]
@@ -895,7 +896,7 @@ G_M6376_IG131:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1810, prolog size 16, PerfScore 332691.15, instruction count 494, allocated bytes for code 1810 (MethodHash=1e31e717) for method AssignJagged:second_assignments(int[][],short[][]) (Tier1)
+; Total bytes of code 1819, prolog size 16, PerfScore 332692.05, instruction count 494, allocated bytes for code 1819 (MethodHash=1e31e717) for method AssignJagged:second_assignments(int[][],short[][]) (Tier1)
 ; ============================================================
 
 Unwind Info:
+21 (+4.02%) : 299134.dasm - System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int (FullOpts)
@@ -112,71 +112,70 @@ G_M46731_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx},
 						;; size=26 bbWeight=0.50 PerfScore 1.75
 G_M46731_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
        cmp      esi, 8
-       jge      G_M46731_IG14
+       jge      G_M46731_IG13
 						;; size=9 bbWeight=1 PerfScore 1.25
-G_M46731_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz, align
+G_M46731_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
        xor      eax, eax
-       jmp      SHORT G_M46731_IG06
-       align    [1 bytes for IG08]
-						;; size=5 bbWeight=0.50 PerfScore 1.12
-G_M46731_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
        cmp      esi, 4
-       jl       SHORT G_M46731_IG07
+       jl       SHORT G_M46731_IG06
        add      esi, -4
        movsx    rcx, word  ptr [rbx+2*rax]
        movsx    rdx, di
        cmp      ecx, edx
-       je       SHORT G_M46731_IG13
+       je       SHORT G_M46731_IG12
+		  ;; NOP compensation instructions of 4 bytes.
        movsx    rcx, word  ptr [rbx+2*rax+0x02]
        cmp      ecx, edx
-       je       SHORT G_M46731_IG12
+       je       SHORT G_M46731_IG11
        movsx    rcx, word  ptr [rbx+2*rax+0x04]
        cmp      ecx, edx
-       je       SHORT G_M46731_IG11
+       je       SHORT G_M46731_IG10
        movsx    rcx, word  ptr [rbx+2*rax+0x06]
        cmp      ecx, edx
-       je       SHORT G_M46731_IG10
+       je       SHORT G_M46731_IG09
        add      rax, 4
-						;; size=55 bbWeight=0.50 PerfScore 11.50
-G_M46731_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
+						;; size=61 bbWeight=0.50 PerfScore 11.62
+G_M46731_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz, align
        test     esi, esi
-       jle      SHORT G_M46731_IG09
+       jle      SHORT G_M46731_IG08
        movsx    rdx, di
-						;; size=8 bbWeight=0.50 PerfScore 0.75
-G_M46731_IG08:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, loop=IG08, byref, isz
+       jmp      SHORT G_M46731_IG07
+       align    [13 bytes for IG07]
+						;; size=23 bbWeight=0.50 PerfScore 1.75
+G_M46731_IG07:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, loop=IG07, byref, isz
        dec      esi
        movsx    rcx, word  ptr [rbx+2*rax]
        cmp      ecx, edx
-       je       SHORT G_M46731_IG13
+       je       SHORT G_M46731_IG12
        inc      rax
        test     esi, esi
-       jg       SHORT G_M46731_IG08
+       jg       SHORT G_M46731_IG07
 						;; size=18 bbWeight=4 PerfScore 28.00
-G_M46731_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M46731_IG08:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz, align
        ; byrRegs -[rbx]
        mov      eax, -1
-       jmp      G_M46731_IG22
-       align    [0 bytes for IG15]
-						;; size=10 bbWeight=0.50 PerfScore 1.12
-G_M46731_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       jmp      G_M46731_IG21
+       align    [5 bytes for IG14]
+						;; size=15 bbWeight=0.50 PerfScore 1.12
+G_M46731_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        add      eax, 3
-       jmp      G_M46731_IG22
+       jmp      G_M46731_IG21
+						;; size=8 bbWeight=0.50 PerfScore 1.12
+G_M46731_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       add      eax, 2
+       jmp      G_M46731_IG21
 						;; size=8 bbWeight=0.50 PerfScore 1.12
 G_M46731_IG11:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       add      eax, 2
-       jmp      G_M46731_IG22
-						;; size=8 bbWeight=0.50 PerfScore 1.12
-G_M46731_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        inc      eax
-       jmp      G_M46731_IG22
+       jmp      G_M46731_IG21
 						;; size=7 bbWeight=0.50 PerfScore 1.12
-G_M46731_IG13:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       jmp      G_M46731_IG22
+G_M46731_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       jmp      G_M46731_IG21
 						;; size=5 bbWeight=0.50 PerfScore 1.00
-G_M46731_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
+G_M46731_IG13:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
        ; byrRegs +[rbx]
        cmp      esi, 16
-       jl       G_M46731_IG18
+       jl       G_M46731_IG17
        movsx    rdx, di
        vpbroadcastw  ymm1, edx
        mov      rax, rbx
@@ -187,32 +186,32 @@ G_M46731_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx},
        lea      rdx, bword ptr [rax+rcx]
        ; byrRegs +[rdx]
 						;; size=35 bbWeight=0.50 PerfScore 2.62
-G_M46731_IG15:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=000D {rax rdx rbx}, loop=IG15, byref, isz
+G_M46731_IG14:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=000D {rax rdx rbx}, loop=IG14, byref, isz
        vpcmpeqw ymm2, ymm1, ymmword ptr [rax]
        vptest   ymm2, ymm2
-       jne      SHORT G_M46731_IG17
+       jne      SHORT G_M46731_IG16
        add      rax, 32
        cmp      rax, rdx
-       jbe      SHORT G_M46731_IG15
+       jbe      SHORT G_M46731_IG14
 						;; size=20 bbWeight=4 PerfScore 42.00
-G_M46731_IG16:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0004 {rdx}, byref, isz
+G_M46731_IG15:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0004 {rdx}, byref, isz
        ; byrRegs -[rax rbx]
        mov      eax, esi
        test     al, 15
-       je       SHORT G_M46731_IG09
+       je       SHORT G_M46731_IG08
        vpcmpeqw ymm2, ymm1, ymmword ptr [rdx]
        vptest   ymm2, ymm2
-       je       SHORT G_M46731_IG09
+       je       SHORT G_M46731_IG08
        shr      rcx, 1
        vpshufb  ymm2, ymm2, ymmword ptr [reloc @RWD00]
        vpermq   ymm1, ymm2, -40
        vpmovmskb eax, xmm1
        tzcnt    eax, eax
        add      eax, ecx
-       jmp      G_M46731_IG22
-       align    [0 bytes for IG19]
+       jmp      G_M46731_IG21
+       align    [0 bytes for IG18]
 						;; size=50 bbWeight=0.50 PerfScore 10.62
-G_M46731_IG17:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0009 {rax rbx}, byref, isz
+G_M46731_IG16:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0009 {rax rbx}, byref, isz
        ; byrRegs -[rdx] +[rax rbx]
        sub      rax, rbx
        ; byrRegs -[rax]
@@ -222,9 +221,9 @@ G_M46731_IG17:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0009 {rax rb
        vpmovmskb ecx, xmm1
        tzcnt    ecx, ecx
        add      eax, ecx
-       jmp      SHORT G_M46731_IG22
+       jmp      SHORT G_M46731_IG21
 						;; size=33 bbWeight=0.50 PerfScore 5.50
-G_M46731_IG18:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
+G_M46731_IG17:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
        movsx    rdx, di
        vpbroadcastw  xmm1, edx
        mov      rax, rbx
@@ -235,30 +234,30 @@ G_M46731_IG18:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx},
        lea      rdx, bword ptr [rax+rcx]
        ; byrRegs +[rdx]
 						;; size=26 bbWeight=0.50 PerfScore 1.50
-G_M46731_IG19:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=000D {rax rdx rbx}, loop=IG19, byref, isz
+G_M46731_IG18:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=000D {rax rdx rbx}, loop=IG18, byref, isz
        vpcmpeqw xmm2, xmm1, xmmword ptr [rax]
        vptest   xmm2, xmm2
-       jne      SHORT G_M46731_IG21
+       jne      SHORT G_M46731_IG20
        add      rax, 16
        cmp      rax, rdx
-       jbe      SHORT G_M46731_IG19
+       jbe      SHORT G_M46731_IG18
 						;; size=20 bbWeight=4 PerfScore 34.00
-G_M46731_IG20:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0004 {rdx}, byref, isz
+G_M46731_IG19:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0004 {rdx}, byref, isz
        ; byrRegs -[rax rbx]
        mov      eax, esi
        test     al, 7
-       je       G_M46731_IG09
+       je       G_M46731_IG08
        vpcmpeqw xmm2, xmm1, xmmword ptr [rdx]
        vptest   xmm2, xmm2
-       je       G_M46731_IG09
+       je       G_M46731_IG08
        shr      rcx, 1
        vpshufb  xmm2, xmm2, xmmword ptr [reloc @RWD00]
        vpmovmskb eax, xmm2
        tzcnt    eax, eax
        add      eax, ecx
-       jmp      SHORT G_M46731_IG22
+       jmp      SHORT G_M46731_IG21
 						;; size=49 bbWeight=0.50 PerfScore 8.62
-G_M46731_IG21:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0009 {rax rbx}, byref
+G_M46731_IG20:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0009 {rax rbx}, byref
        ; byrRegs -[rdx] +[rax rbx]
        sub      rax, rbx
        ; byrRegs -[rax]
@@ -268,14 +267,14 @@ G_M46731_IG21:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0009 {rax rb
        tzcnt    ecx, ecx
        add      eax, ecx
 						;; size=25 bbWeight=0.50 PerfScore 3.50
-G_M46731_IG22:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M46731_IG21:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; byrRegs -[rbx]
        mov      rcx, 0xD1FFAB1E
        lea      rdx, [rbp+0x10]
        call     [CORINFO_HELP_PROF_FCN_LEAVE]
        nop      
 						;; size=21 bbWeight=1 PerfScore 4.00
-G_M46731_IG23:        ; bbWeight=1, epilog, nogc, extend
+G_M46731_IG22:        ; bbWeight=1, epilog, nogc, extend
        vzeroupper 
        add      rsp, 40
        pop      rbx
@@ -287,7 +286,7 @@ G_M46731_IG23:        ; bbWeight=1, epilog, nogc, extend
 RWD00  	dq	0F0D0B0907050301h, 8080808080808080h, 0F0D0B0907050301h, 8080808080808080h
 
 
-; Total bytes of code 523, prolog size 69, PerfScore 238.30, instruction count 145, allocated bytes for code 523 (MethodHash=bc854974) for method System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int (FullOpts)
+; Total bytes of code 544, prolog size 69, PerfScore 240.40, instruction count 145, allocated bytes for code 544 (MethodHash=bc854974) for method System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int (FullOpts)
 ; ============================================================
 
 Unwind Info:
+16 (+5.03%) : 172647.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:EnsureScopedRefAttributeExists(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder) (FullOpts)
@@ -83,9 +83,9 @@ G_M38191_IG03:        ; bbWeight=4, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=
        test     eax, eax
        je       G_M38191_IG09
 						;; size=25 bbWeight=4 PerfScore 27.00
-G_M38191_IG04:        ; bbWeight=2, gcrefRegs=A0C8 {rbx rsi rdi r13 r15}, byrefRegs=0000 {}, byref, isz
+G_M38191_IG04:        ; bbWeight=2, gcrefRegs=A0C8 {rbx rsi rdi r13 r15}, byrefRegs=0000 {}, byref, isz, align
        test     rsi, rsi
-       je       SHORT G_M38191_IG07
+       je       G_M38191_IG07
        mov      ecx, dword ptr [rsi+0x120]
        mov      rdx, gword ptr [rsi+0xA8]
        ; gcrRegs +[rdx]
@@ -110,8 +110,8 @@ G_M38191_IG04:        ; bbWeight=2, gcrefRegs=A0C8 {rbx rsi rdi r13 r15}, byrefR
        lea      rcx, bword ptr [rsi+0x120]
        ; byrRegs +[rcx]
        jmp      SHORT G_M38191_IG05
-       align    [0 bytes for IG05]
-						;; size=82 bbWeight=2 PerfScore 37.00
+       align    [10 bytes for IG05]
+						;; size=96 bbWeight=2 PerfScore 37.00
 G_M38191_IG05:        ; bbWeight=16, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0002 {rcx}, loop=IG05, byref, isz
        mov      eax, dword ptr [rcx]
        mov      dword ptr [rsp+0x24], eax
@@ -124,11 +124,12 @@ G_M38191_IG05:        ; bbWeight=16, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs
        cmp      eax, dword ptr [rsp+0x24]
        jne      SHORT G_M38191_IG05
 						;; size=28 bbWeight=16 PerfScore 412.00
-G_M38191_IG06:        ; bbWeight=2, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref, isz
+G_M38191_IG06:        ; bbWeight=2, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref, isz, align
        ; byrRegs -[rcx]
        jmp      SHORT G_M38191_IG09
-						;; size=2 bbWeight=2 PerfScore 4.00
-G_M38191_IG07:        ; bbWeight=2, gcrefRegs=A0C8 {rbx rsi rdi r13 r15}, byrefRegs=0000 {}, byref, isz, align
+       align    [9 bytes for IG08]
+						;; size=11 bbWeight=2 PerfScore 4.00
+G_M38191_IG07:        ; bbWeight=2, gcrefRegs=A0C8 {rbx rsi rdi r13 r15}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[r13]
        mov      rcx, r13
        ; gcrRegs +[rcx]
@@ -157,9 +158,7 @@ G_M38191_IG07:        ; bbWeight=2, gcrefRegs=A0C8 {rbx rsi rdi r13 r15}, byrefR
        je       SHORT G_M38191_IG09
        lea      rcx, bword ptr [rbx+0x16C]
        ; byrRegs +[rcx]
-       jmp      SHORT G_M38191_IG08
-       align    [5 bytes for IG08]
-						;; size=64 bbWeight=2 PerfScore 41.00
+						;; size=57 bbWeight=2 PerfScore 37.00
 G_M38191_IG08:        ; bbWeight=16, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0002 {rcx}, loop=IG08, byref, isz
        mov      eax, dword ptr [rcx]
        mov      dword ptr [rsp+0x20], eax
@@ -193,7 +192,7 @@ G_M38191_IG10:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        ret      
 						;; size=17 bbWeight=1 PerfScore 5.25
 
-; Total bytes of code 318, prolog size 33, PerfScore 992.05, instruction count 96, allocated bytes for code 318 (MethodHash=350f6ad0) for method Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:EnsureScopedRefAttributeExists(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder) (FullOpts)
+; Total bytes of code 334, prolog size 33, PerfScore 989.65, instruction count 95, allocated bytes for code 334 (MethodHash=350f6ad0) for method Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:EnsureScopedRefAttributeExists(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder) (FullOpts)
 ; ============================================================
 
 Unwind Info:
libraries.pmi.windows.x64.checked.mch
-6 (-12.77%) : 34063.dasm - System.Diagnostics.Tracing.DataCollector:EnsureBuffer():this (FullOpts)
@@ -33,14 +33,13 @@ G_M12175_IG03:        ; bbWeight=0.50, gcrefRegs=0001 {rax}, byrefRegs=0002 {rcx
        mov      eax, dword ptr [rax+0x08]
        ; gcrRegs -[rax]
        jmp      SHORT G_M12175_IG05
+       align    [0 bytes for IG06]
 						;; size=10 bbWeight=0.50 PerfScore 4.00
 G_M12175_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref
        mov      eax, 64
 						;; size=5 bbWeight=0.50 PerfScore 0.12
-G_M12175_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref, isz, align
-       jmp      SHORT G_M12175_IG06
-       align    [4 bytes for IG06]
-						;; size=6 bbWeight=0.50 PerfScore 1.00
+G_M12175_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref
+						;; size=0 bbWeight=0.50 PerfScore 0.00
 G_M12175_IG06:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, loop=IG06, byref, isz
        add      eax, eax
        cmp      eax, edx
@@ -58,7 +57,7 @@ G_M12175_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
        ret      
 						;; size=1 bbWeight=0.50 PerfScore 0.50
 
-; Total bytes of code 47, prolog size 0, PerfScore 22.70, instruction count 17, allocated bytes for code 47 (MethodHash=d087d070) for method System.Diagnostics.Tracing.DataCollector:EnsureBuffer():this (FullOpts)
+; Total bytes of code 41, prolog size 0, PerfScore 21.10, instruction count 16, allocated bytes for code 41 (MethodHash=d087d070) for method System.Diagnostics.Tracing.DataCollector:EnsureBuffer():this (FullOpts)
 ; ============================================================
 
 Unwind Info:
-6 (-12.77%) : 34064.dasm - System.Diagnostics.Tracing.DataCollector:EnsureBuffer(int):this (FullOpts)
@@ -34,14 +34,13 @@ G_M31196_IG03:        ; bbWeight=0.50, gcrefRegs=0001 {rax}, byrefRegs=0002 {rcx
        mov      eax, dword ptr [rax+0x08]
        ; gcrRegs -[rax]
        jmp      SHORT G_M31196_IG05
+       align    [0 bytes for IG06]
 						;; size=10 bbWeight=0.50 PerfScore 4.00
 G_M31196_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref
        mov      eax, 64
 						;; size=5 bbWeight=0.50 PerfScore 0.12
-G_M31196_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref, isz, align
-       jmp      SHORT G_M31196_IG06
-       align    [4 bytes for IG06]
-						;; size=6 bbWeight=0.50 PerfScore 1.00
+G_M31196_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref
+						;; size=0 bbWeight=0.50 PerfScore 0.00
 G_M31196_IG06:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, loop=IG06, byref, isz
        add      eax, eax
        cmp      eax, edx
@@ -59,7 +58,7 @@ G_M31196_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
        ret      
 						;; size=1 bbWeight=0.50 PerfScore 0.50
 
-; Total bytes of code 47, prolog size 0, PerfScore 23.70, instruction count 17, allocated bytes for code 47 (MethodHash=80318623) for method System.Diagnostics.Tracing.DataCollector:EnsureBuffer(int):this (FullOpts)
+; Total bytes of code 41, prolog size 0, PerfScore 22.10, instruction count 16, allocated bytes for code 41 (MethodHash=80318623) for method System.Diagnostics.Tracing.DataCollector:EnsureBuffer(int):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
-20 (-4.58%) : 147876.dasm - Microsoft.CSharp.RuntimeBinder.SymbolTable:LoadClassTypeParameter(Microsoft.CSharp.RuntimeBinder.Semantics.AggregateSymbol,System.Type):Microsoft.CSharp.RuntimeBinder.Semantics.TypeParameterType (FullOpts)
@@ -125,12 +125,13 @@ G_M43840_IG08:        ; bbWeight=16, gcrefRegs=00CA {rcx rbx rsi rdi}, byrefRegs
        test     rcx, rcx
        jne      SHORT G_M43840_IG08
 						;; size=26 bbWeight=16 PerfScore 116.00
-G_M43840_IG09:        ; bbWeight=2, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
+G_M43840_IG09:        ; bbWeight=2, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz, align
        ; gcrRegs -[rcx]
        xor      rbp, rbp
        ; gcrRegs +[rbp]
        jmp      SHORT G_M43840_IG11
-						;; size=4 bbWeight=2 PerfScore 4.50
+       align    [5 bytes for IG16]
+						;; size=9 bbWeight=2 PerfScore 4.50
 G_M43840_IG10:        ; bbWeight=2, gcrefRegs=00CA {rcx rbx rsi rdi}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rbp] +[rcx]
        mov      rbp, rcx
@@ -141,11 +142,11 @@ G_M43840_IG11:        ; bbWeight=4, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=
        test     rbp, rbp
        je       G_M43840_IG20
 						;; size=9 bbWeight=4 PerfScore 5.00
-G_M43840_IG12:        ; bbWeight=1, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref
+G_M43840_IG12:        ; bbWeight=1, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
        mov      r14, 0xD1FFAB1E      ; Microsoft.CSharp.RuntimeBinder.Semantics.TypeParameterSymbol
        cmp      qword ptr [rbp], r14
-       jne      G_M43840_IG20
-						;; size=20 bbWeight=1 PerfScore 4.25
+       jne      SHORT G_M43840_IG20
+						;; size=16 bbWeight=1 PerfScore 4.25
 G_M43840_IG13:        ; bbWeight=16, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref
        mov      rcx, gword ptr [rbp+0x30]
        ; gcrRegs +[rcx]
@@ -165,7 +166,7 @@ G_M43840_IG13:        ; bbWeight=16, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs
        test     eax, eax
        jne      G_M43840_IG24
 						;; size=35 bbWeight=16 PerfScore 208.00
-G_M43840_IG14:        ; bbWeight=8, gcrefRegs=80E8 {rbx rbp rsi rdi r15}, byrefRegs=0000 {}, byref
+G_M43840_IG14:        ; bbWeight=8, gcrefRegs=80E8 {rbx rbp rsi rdi r15}, byrefRegs=0000 {}, byref, isz
        mov      rcx, r15
        ; gcrRegs +[rcx]
        call     [<unknown method>]
@@ -186,14 +187,13 @@ G_M43840_IG14:        ; bbWeight=8, gcrefRegs=80E8 {rbx rbp rsi rdi r15}, byrefR
        ; gcrRegs -[rax rcx rdx r15]
        ; gcr arg pop 0
        test     eax, eax
-       jne      G_M43840_IG24
-						;; size=41 bbWeight=8 PerfScore 92.00
-G_M43840_IG15:        ; bbWeight=16, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref, isz, align
+       jne      SHORT G_M43840_IG24
+						;; size=37 bbWeight=8 PerfScore 92.00
+G_M43840_IG15:        ; bbWeight=16, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
        mov      rbp, gword ptr [rbp+0x20]
        test     rbp, rbp
        je       SHORT G_M43840_IG17
-       align    [13 bytes for IG16]
-						;; size=22 bbWeight=16 PerfScore 56.00
+						;; size=9 bbWeight=16 PerfScore 52.00
 G_M43840_IG16:        ; bbWeight=64, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, loop=IG16, byref, isz
        mov      ecx, dword ptr [rbp+0x28]
        mov      r8d, 1
@@ -213,10 +213,10 @@ G_M43840_IG18:        ; bbWeight=16, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs
        test     rbp, rbp
        je       SHORT G_M43840_IG20
 						;; size=5 bbWeight=16 PerfScore 20.00
-G_M43840_IG19:        ; bbWeight=8, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref
+G_M43840_IG19:        ; bbWeight=8, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
        cmp      qword ptr [rbp], r14
-       je       G_M43840_IG13
-						;; size=10 bbWeight=8 PerfScore 32.00
+       je       SHORT G_M43840_IG13
+						;; size=6 bbWeight=8 PerfScore 32.00
 G_M43840_IG20:        ; bbWeight=16, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rbp]
        mov      rdi, gword ptr [rdi+0x10]
@@ -276,7 +276,7 @@ G_M43840_IG26:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=00E8 {
        jmp      G_M43840_IG04
 						;; size=25 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 437, prolog size 30, PerfScore 1222.08, instruction count 121, allocated bytes for code 437 (MethodHash=6b0c54bf) for method Microsoft.CSharp.RuntimeBinder.SymbolTable:LoadClassTypeParameter(Microsoft.CSharp.RuntimeBinder.Semantics.AggregateSymbol,System.Type):Microsoft.CSharp.RuntimeBinder.Semantics.TypeParameterType (FullOpts)
+; Total bytes of code 417, prolog size 30, PerfScore 1216.08, instruction count 121, allocated bytes for code 417 (MethodHash=6b0c54bf) for method Microsoft.CSharp.RuntimeBinder.SymbolTable:LoadClassTypeParameter(Microsoft.CSharp.RuntimeBinder.Semantics.AggregateSymbol,System.Type):Microsoft.CSharp.RuntimeBinder.Semantics.TypeParameterType (FullOpts)
 ; ============================================================
 
 Unwind Info:
+10 (+1.00%) : 225203.dasm - System.Linq.Expressions.Interpreter.ByRefMethodInfoCallInstruction:Run(System.Linq.Expressions.Interpreter.InterpretedFrame):int:this (FullOpts)
@@ -113,6 +113,7 @@ G_M63927_IG06:        ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byr
        mov      eax, dword ptr [rcx+0x10]
        test     eax, eax
        jle      SHORT G_M63927_IG09
+		  ;; NOP compensation instructions of 4 bytes.
        movsxd   rdx, eax
        mov      rcx, 0xD1FFAB1E      ; System.Object[]
        ; gcrRegs -[rcx]
@@ -131,7 +132,7 @@ G_M63927_IG06:        ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byr
        ; gcrRegs +[r15]
        jmp      SHORT G_M63927_IG07
        align    [0 bytes for IG07]
-						;; size=49 bbWeight=1 PerfScore 13.50
+						;; size=53 bbWeight=1 PerfScore 13.50
 G_M63927_IG07:        ; bbWeight=8, gcrefRegs=8040 {rsi r15}, byrefRegs=0000 {}, loop=IG07, byref, isz
        ; gcrRegs -[rax rdx]
        mov      rcx, r15
@@ -155,11 +156,12 @@ G_M63927_IG07:        ; bbWeight=8, gcrefRegs=8040 {rsi r15}, byrefRegs=0000 {},
        cmp      r14d, edi
        jg       SHORT G_M63927_IG07
 						;; size=46 bbWeight=8 PerfScore 80.00
-G_M63927_IG08:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
+G_M63927_IG08:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz, align
        ; gcrRegs -[r15]
        mov      gword ptr [rbp-0x40], rsi
        jmp      SHORT G_M63927_IG10
-						;; size=6 bbWeight=1 PerfScore 3.00
+       align    [6 bytes for IG14]
+						;; size=12 bbWeight=1 PerfScore 3.00
 G_M63927_IG09:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rsi]
        mov      rcx, 0xD1FFAB1E
@@ -170,7 +172,6 @@ G_M63927_IG09:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      rsi, gword ptr [rcx]
        ; gcrRegs +[rsi]
        jmp      SHORT G_M63927_IG08
-       align    [0 bytes for IG14]
 						;; size=35 bbWeight=1 PerfScore 5.75
 G_M63927_IG10:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
        mov      rcx, gword ptr [rbp+0x10]
@@ -582,7 +583,7 @@ G_M63927_IG38:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        ret      
 						;; size=15 bbWeight=1 PerfScore 4.75
 
-; Total bytes of code 1001, prolog size 40, PerfScore 626.60, instruction count 286, allocated bytes for code 1001 (MethodHash=2a0e0648) for method System.Linq.Expressions.Interpreter.ByRefMethodInfoCallInstruction:Run(System.Linq.Expressions.Interpreter.InterpretedFrame):int:this (FullOpts)
+; Total bytes of code 1011, prolog size 40, PerfScore 627.60, instruction count 286, allocated bytes for code 1011 (MethodHash=2a0e0648) for method System.Linq.Expressions.Interpreter.ByRefMethodInfoCallInstruction:Run(System.Linq.Expressions.Interpreter.InterpretedFrame):int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
+14 (+2.12%) : 86141.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:EnsureNullableAttributeExists(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.Symbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder) (FullOpts)
@@ -216,6 +216,7 @@ G_M54037_IG12:        ; bbWeight=2, gcrefRegs=50C8 {rbx rsi rdi r12 r14}, byrefR
        ; gcrRegs -[rax]
        test     rsi, rsi
        je       SHORT G_M54037_IG15
+		  ;; NOP compensation instructions of 4 bytes.
        mov      ecx, dword ptr [rsi+0x120]
        mov      rdx, gword ptr [rsi+0xA8]
        ; gcrRegs +[rdx]
@@ -240,8 +241,8 @@ G_M54037_IG12:        ; bbWeight=2, gcrefRegs=50C8 {rbx rsi rdi r12 r14}, byrefR
        lea      rcx, bword ptr [rsi+0x120]
        ; byrRegs +[rcx]
        jmp      SHORT G_M54037_IG13
-       align    [2 bytes for IG13]
-						;; size=84 bbWeight=2 PerfScore 37.00
+       align    [14 bytes for IG13]
+						;; size=100 bbWeight=2 PerfScore 37.00
 G_M54037_IG13:        ; bbWeight=16, gcrefRegs=40C8 {rbx rsi rdi r14}, byrefRegs=0002 {rcx}, loop=IG13, byref, isz
        mov      eax, dword ptr [rcx]
        mov      dword ptr [rbp-0x54], eax
@@ -257,6 +258,7 @@ G_M54037_IG13:        ; bbWeight=16, gcrefRegs=40C8 {rbx rsi rdi r14}, byrefRegs
 G_M54037_IG14:        ; bbWeight=2, gcrefRegs=40C8 {rbx rsi rdi r14}, byrefRegs=0000 {}, byref, isz
        ; byrRegs -[rcx]
        jmp      SHORT G_M54037_IG18
+       align    [0 bytes for IG16]
 						;; size=2 bbWeight=2 PerfScore 4.00
 G_M54037_IG15:        ; bbWeight=2, gcrefRegs=50C8 {rbx rsi rdi r12 r14}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[r12]
@@ -286,9 +288,7 @@ G_M54037_IG15:        ; bbWeight=2, gcrefRegs=50C8 {rbx rsi rdi r12 r14}, byrefR
        je       SHORT G_M54037_IG17
        lea      rdx, bword ptr [rbx+0x16C]
        ; byrRegs +[rdx]
-       jmp      SHORT G_M54037_IG16
-       align    [0 bytes for IG16]
-						;; size=57 bbWeight=2 PerfScore 35.00
+						;; size=55 bbWeight=2 PerfScore 31.00
 G_M54037_IG16:        ; bbWeight=16, gcrefRegs=40C8 {rbx rsi rdi r14}, byrefRegs=0004 {rdx}, loop=IG16, byref, isz
        mov      eax, dword ptr [rdx]
        mov      dword ptr [rbp-0x58], eax
@@ -345,7 +345,7 @@ G_M54037_IG21:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        int3     
 						;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 659, prolog size 68, PerfScore 1200.98, instruction count 167, allocated bytes for code 659 (MethodHash=4a2a2cea) for method Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:EnsureNullableAttributeExists(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.Symbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder) (FullOpts)
+; Total bytes of code 673, prolog size 68, PerfScore 1198.38, instruction count 166, allocated bytes for code 673 (MethodHash=4a2a2cea) for method Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:EnsureNullableAttributeExists(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.Symbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder) (FullOpts)
 ; ============================================================
 
 Unwind Info:
+16 (+5.03%) : 86138.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:EnsureScopedRefAttributeExists(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder) (FullOpts)
@@ -83,9 +83,9 @@ G_M38191_IG03:        ; bbWeight=4, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=
        test     eax, eax
        je       G_M38191_IG09
 						;; size=25 bbWeight=4 PerfScore 27.00
-G_M38191_IG04:        ; bbWeight=2, gcrefRegs=A0C8 {rbx rsi rdi r13 r15}, byrefRegs=0000 {}, byref, isz
+G_M38191_IG04:        ; bbWeight=2, gcrefRegs=A0C8 {rbx rsi rdi r13 r15}, byrefRegs=0000 {}, byref, isz, align
        test     rsi, rsi
-       je       SHORT G_M38191_IG07
+       je       G_M38191_IG07
        mov      ecx, dword ptr [rsi+0x120]
        mov      rdx, gword ptr [rsi+0xA8]
        ; gcrRegs +[rdx]
@@ -110,8 +110,8 @@ G_M38191_IG04:        ; bbWeight=2, gcrefRegs=A0C8 {rbx rsi rdi r13 r15}, byrefR
        lea      rcx, bword ptr [rsi+0x120]
        ; byrRegs +[rcx]
        jmp      SHORT G_M38191_IG05
-       align    [0 bytes for IG05]
-						;; size=82 bbWeight=2 PerfScore 37.00
+       align    [10 bytes for IG05]
+						;; size=96 bbWeight=2 PerfScore 37.00
 G_M38191_IG05:        ; bbWeight=16, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0002 {rcx}, loop=IG05, byref, isz
        mov      eax, dword ptr [rcx]
        mov      dword ptr [rsp+0x24], eax
@@ -124,11 +124,12 @@ G_M38191_IG05:        ; bbWeight=16, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs
        cmp      eax, dword ptr [rsp+0x24]
        jne      SHORT G_M38191_IG05
 						;; size=28 bbWeight=16 PerfScore 412.00
-G_M38191_IG06:        ; bbWeight=2, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref, isz
+G_M38191_IG06:        ; bbWeight=2, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref, isz, align
        ; byrRegs -[rcx]
        jmp      SHORT G_M38191_IG09
-						;; size=2 bbWeight=2 PerfScore 4.00
-G_M38191_IG07:        ; bbWeight=2, gcrefRegs=A0C8 {rbx rsi rdi r13 r15}, byrefRegs=0000 {}, byref, isz, align
+       align    [9 bytes for IG08]
+						;; size=11 bbWeight=2 PerfScore 4.00
+G_M38191_IG07:        ; bbWeight=2, gcrefRegs=A0C8 {rbx rsi rdi r13 r15}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[r13]
        mov      rcx, r13
        ; gcrRegs +[rcx]
@@ -157,9 +158,7 @@ G_M38191_IG07:        ; bbWeight=2, gcrefRegs=A0C8 {rbx rsi rdi r13 r15}, byrefR
        je       SHORT G_M38191_IG09
        lea      rcx, bword ptr [rbx+0x16C]
        ; byrRegs +[rcx]
-       jmp      SHORT G_M38191_IG08
-       align    [5 bytes for IG08]
-						;; size=64 bbWeight=2 PerfScore 41.00
+						;; size=57 bbWeight=2 PerfScore 37.00
 G_M38191_IG08:        ; bbWeight=16, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0002 {rcx}, loop=IG08, byref, isz
        mov      eax, dword ptr [rcx]
        mov      dword ptr [rsp+0x20], eax
@@ -193,7 +192,7 @@ G_M38191_IG10:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        ret      
 						;; size=17 bbWeight=1 PerfScore 5.25
 
-; Total bytes of code 318, prolog size 33, PerfScore 992.05, instruction count 96, allocated bytes for code 318 (MethodHash=350f6ad0) for method Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:EnsureScopedRefAttributeExists(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder) (FullOpts)
+; Total bytes of code 334, prolog size 33, PerfScore 989.65, instruction count 95, allocated bytes for code 334 (MethodHash=350f6ad0) for method Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:EnsureScopedRefAttributeExists(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder) (FullOpts)
 ; ============================================================
 
 Unwind Info:
libraries_tests.run.windows.x64.Release.mch
-6 (-4.29%) : 273557.dasm - System.Diagnostics.Tracing.DataCollector:EndBuffered():this (Instrumented Tier1)
@@ -42,14 +42,13 @@ G_M30843_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx},
        mov      edx, dword ptr [rdx+0x08]
        ; gcrRegs -[rdx]
        jmp      SHORT G_M30843_IG05
+       align    [0 bytes for IG06]
 						;; size=36 bbWeight=0.50 PerfScore 7.25
 G_M30843_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
        mov      edx, 64
 						;; size=5 bbWeight=0.50 PerfScore 0.12
-G_M30843_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz, align
-       jmp      SHORT G_M30843_IG06
-       align    [4 bytes for IG06]
-						;; size=6 bbWeight=0.50 PerfScore 1.00
+G_M30843_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
+						;; size=0 bbWeight=0.50 PerfScore 0.00
 G_M30843_IG06:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, loop=IG06, byref, isz
        add      edx, edx
        cmp      edx, ecx
@@ -98,7 +97,7 @@ G_M30843_IG11:        ; bbWeight=1, epilog, nogc, extend
        ret      
 						;; size=6 bbWeight=1 PerfScore 1.75
 
-; Total bytes of code 140, prolog size 8, PerfScore 50.13, instruction count 41, allocated bytes for code 140 (MethodHash=c2f48784) for method System.Diagnostics.Tracing.DataCollector:EndBuffered():this (Instrumented Tier1)
+; Total bytes of code 134, prolog size 8, PerfScore 48.53, instruction count 40, allocated bytes for code 134 (MethodHash=c2f48784) for method System.Diagnostics.Tracing.DataCollector:EndBuffered():this (Instrumented Tier1)
 ; ============================================================
 
 Unwind Info:
-4 (-1.90%) : 316788.dasm - System.IO.Compression.Tests.zip_ManualAndCompatibilityTests:FindIndexOfSequence(ubyte[],int,ubyte[]):int (Tier1-OSR)
@@ -35,10 +35,11 @@ G_M2456_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      r10d, dword ptr [rsp+0x70]
        mov      eax, dword ptr [rsp+0x6C]
 						;; size=49 bbWeight=1 PerfScore 12.25
-G_M2456_IG02:        ; bbWeight=1, gcrefRegs=0102 {rcx r8}, byrefRegs=0000 {}, byref, isz
+G_M2456_IG02:        ; bbWeight=1, gcrefRegs=0102 {rcx r8}, byrefRegs=0000 {}, byref, isz, align
        mov      r9d, dword ptr [r8+0x08]
        jmp      SHORT G_M2456_IG04
-						;; size=6 bbWeight=1 PerfScore 4.00
+       align    [4 bytes for IG06]
+						;; size=10 bbWeight=1 PerfScore 4.00
 G_M2456_IG03:        ; bbWeight=98.72, gcrefRegs=0102 {rcx r8}, byrefRegs=0000 {}, byref
        mov      r10d, 1
        xor      eax, eax
@@ -47,13 +48,11 @@ G_M2456_IG04:        ; bbWeight=98.72, gcrefRegs=0102 {rcx r8}, byrefRegs=0000 {
        cmp      r9d, eax
        jle      SHORT G_M2456_IG11
 						;; size=5 bbWeight=98.72 PerfScore 123.40
-G_M2456_IG05:        ; bbWeight=49.37, gcrefRegs=0102 {rcx r8}, byrefRegs=0000 {}, byref, isz, align
+G_M2456_IG05:        ; bbWeight=49.37, gcrefRegs=0102 {rcx r8}, byrefRegs=0000 {}, byref, isz
        test     eax, eax
        jl       SHORT G_M2456_IG09
        mov      r11d, dword ptr [rcx+0x08]
-       jmp      SHORT G_M2456_IG06
-       align    [2 bytes for IG06]
-						;; size=12 bbWeight=49.37 PerfScore 259.17
+						;; size=8 bbWeight=49.37 PerfScore 160.44
 G_M2456_IG06:        ; bbWeight=98.83, gcrefRegs=0102 {rcx r8}, byrefRegs=0000 {}, byref, isz
        lea      ebx, [rdx+rax]
        cmp      ebx, r11d
@@ -104,14 +103,14 @@ G_M2456_IG13:        ; bbWeight=49.27, epilog, nogc, extend
        pop      rbp
        ret      
 						;; size=11 bbWeight=49.27 PerfScore 135.50
-G_M2456_IG14:        ; bbWeight=98.72, gcVars=0000000000000000 {}, gcrefRegs=0102 {rcx r8}, byrefRegs=0000 {}, gcvars, byref
+G_M2456_IG14:        ; bbWeight=98.72, gcVars=0000000000000000 {}, gcrefRegs=0102 {rcx r8}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs +[rcx r8]
        inc      edx
        mov      r11d, dword ptr [rcx+0x08]
        sub      r11d, r9d
        cmp      r11d, edx
-       jg       G_M2456_IG03
-						;; size=18 bbWeight=98.72 PerfScore 370.21
+       jg       SHORT G_M2456_IG03
+						;; size=14 bbWeight=98.72 PerfScore 370.21
 G_M2456_IG15:        ; bbWeight=0.03, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rcx r8]
        mov      eax, -1
@@ -129,7 +128,7 @@ G_M2456_IG17:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 211, prolog size 49, PerfScore 2161.62, instruction count 65, allocated bytes for code 211 (MethodHash=369cf667) for method System.IO.Compression.Tests.zip_ManualAndCompatibilityTests:FindIndexOfSequence(ubyte[],int,ubyte[]):int (Tier1-OSR)
+; Total bytes of code 207, prolog size 49, PerfScore 2062.49, instruction count 64, allocated bytes for code 207 (MethodHash=369cf667) for method System.IO.Compression.Tests.zip_ManualAndCompatibilityTests:FindIndexOfSequence(ubyte[],int,ubyte[]):int (Tier1-OSR)
 ; ============================================================
 
 Unwind Info:
-4 (-1.90%) : 316805.dasm - System.IO.Compression.Tests.zip_ManualAndCompatibilityTests:FindIndexOfSequence(ubyte[],int,ubyte[]):int (Tier1-OSR)
@@ -35,10 +35,11 @@ G_M2456_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      r10d, dword ptr [rsp+0x70]
        mov      eax, dword ptr [rsp+0x6C]
 						;; size=49 bbWeight=1 PerfScore 12.25
-G_M2456_IG02:        ; bbWeight=1, gcrefRegs=0102 {rcx r8}, byrefRegs=0000 {}, byref, isz
+G_M2456_IG02:        ; bbWeight=1, gcrefRegs=0102 {rcx r8}, byrefRegs=0000 {}, byref, isz, align
        mov      r9d, dword ptr [r8+0x08]
        jmp      SHORT G_M2456_IG04
-						;; size=6 bbWeight=1 PerfScore 4.00
+       align    [4 bytes for IG06]
+						;; size=10 bbWeight=1 PerfScore 4.00
 G_M2456_IG03:        ; bbWeight=98.05, gcrefRegs=0102 {rcx r8}, byrefRegs=0000 {}, byref
        mov      r10d, 1
        xor      eax, eax
@@ -47,13 +48,11 @@ G_M2456_IG04:        ; bbWeight=98.05, gcrefRegs=0102 {rcx r8}, byrefRegs=0000 {
        cmp      r9d, eax
        jle      SHORT G_M2456_IG11
 						;; size=5 bbWeight=98.05 PerfScore 122.57
-G_M2456_IG05:        ; bbWeight=49.03, gcrefRegs=0102 {rcx r8}, byrefRegs=0000 {}, byref, isz, align
+G_M2456_IG05:        ; bbWeight=49.03, gcrefRegs=0102 {rcx r8}, byrefRegs=0000 {}, byref, isz
        test     eax, eax
        jl       SHORT G_M2456_IG09
        mov      r11d, dword ptr [rcx+0x08]
-       jmp      SHORT G_M2456_IG06
-       align    [2 bytes for IG06]
-						;; size=12 bbWeight=49.03 PerfScore 257.40
+						;; size=8 bbWeight=49.03 PerfScore 159.34
 G_M2456_IG06:        ; bbWeight=98.90, gcrefRegs=0102 {rcx r8}, byrefRegs=0000 {}, byref, isz
        lea      ebx, [rdx+rax]
        cmp      ebx, r11d
@@ -104,14 +103,14 @@ G_M2456_IG13:        ; bbWeight=49.34, epilog, nogc, extend
        pop      rbp
        ret      
 						;; size=11 bbWeight=49.34 PerfScore 135.68
-G_M2456_IG14:        ; bbWeight=98.67, gcVars=0000000000000000 {}, gcrefRegs=0102 {rcx r8}, byrefRegs=0000 {}, gcvars, byref
+G_M2456_IG14:        ; bbWeight=98.67, gcVars=0000000000000000 {}, gcrefRegs=0102 {rcx r8}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs +[rcx r8]
        inc      edx
        mov      r11d, dword ptr [rcx+0x08]
        sub      r11d, r9d
        cmp      r11d, edx
-       jg       G_M2456_IG03
-						;; size=18 bbWeight=98.67 PerfScore 370.02
+       jg       SHORT G_M2456_IG03
+						;; size=14 bbWeight=98.67 PerfScore 370.02
 G_M2456_IG15:        ; bbWeight=0.02, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rcx r8]
        mov      eax, -1
@@ -129,7 +128,7 @@ G_M2456_IG17:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 211, prolog size 49, PerfScore 2157.72, instruction count 65, allocated bytes for code 211 (MethodHash=369cf667) for method System.IO.Compression.Tests.zip_ManualAndCompatibilityTests:FindIndexOfSequence(ubyte[],int,ubyte[]):int (Tier1-OSR)
+; Total bytes of code 207, prolog size 49, PerfScore 2059.26, instruction count 64, allocated bytes for code 207 (MethodHash=369cf667) for method System.IO.Compression.Tests.zip_ManualAndCompatibilityTests:FindIndexOfSequence(ubyte[],int,ubyte[]):int (Tier1-OSR)
 ; ============================================================
 
 Unwind Info:
+16 (+0.93%) : 175733.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:CheckPossibleNullReceiver(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState,ubyte):ubyte:this (Tier1)
@@ -217,15 +217,14 @@ G_M39873_IG03:        ; bbWeight=0.89, gcrefRegs=0088 {rbx rdi}, byrefRegs=0040
        cmp      qword ptr [r15], rcx
        je       SHORT G_M39873_IG05
 						;; size=119 bbWeight=0.89 PerfScore 32.00
-G_M39873_IG04:        ; bbWeight=0.44, gcrefRegs=A088 {rbx rdi r13 r15}, byrefRegs=0000 {}, byref, isz, align
+G_M39873_IG04:        ; bbWeight=0.44, gcrefRegs=A088 {rbx rdi r13 r15}, byrefRegs=0000 {}, byref, isz
        mov      rdx, r15
        ; gcrRegs +[rdx]
        call     CORINFO_HELP_CHKCASTCLASS_SPECIAL
        ; gcrRegs -[rdx r15] +[rax]
        ; gcr arg pop 0
        jmp      SHORT G_M39873_IG06
-       align    [3 bytes for IG22]
-						;; size=13 bbWeight=0.44 PerfScore 1.44
+						;; size=10 bbWeight=0.44 PerfScore 1.44
 G_M39873_IG05:        ; bbWeight=0.44, gcrefRegs=A088 {rbx rdi r13 r15}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax] +[r15]
        mov      rax, r15
@@ -315,7 +314,7 @@ G_M39873_IG15:        ; bbWeight=0.27, gcrefRegs=2088 {rbx rdi r13}, byrefRegs=0
        mov      rbp, rax
        ; gcrRegs +[rbp]
 						;; size=17 bbWeight=0.27 PerfScore 2.00
-G_M39873_IG16:        ; bbWeight=0.89, gcrefRegs=20A8 {rbx rbp rdi r13}, byrefRegs=0000 {}, byref, isz
+G_M39873_IG16:        ; bbWeight=0.89, gcrefRegs=20A8 {rbx rbp rdi r13}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax]
        mov      r15d, dword ptr [r13+0x20]
        mov      rcx, gword ptr [r13+0x18]
@@ -324,8 +323,8 @@ G_M39873_IG16:        ; bbWeight=0.89, gcrefRegs=20A8 {rbx rbp rdi r13}, byrefRe
        mov      r14d, eax
        mov      rdx, 0xD1FFAB1E      ; Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.NamespaceDeclarationSyntax
        cmp      qword ptr [rcx], rdx
-       jne      SHORT G_M39873_IG25
-						;; size=29 bbWeight=0.89 PerfScore 9.33
+       jne      G_M39873_IG25
+						;; size=33 bbWeight=0.89 PerfScore 9.33
 G_M39873_IG17:        ; bbWeight=0.44, gcrefRegs=20AA {rcx rbx rbp rdi r13}, byrefRegs=0000 {}, byref, isz
        test     eax, eax
        je       G_M39873_IG68
@@ -346,7 +345,7 @@ G_M39873_IG19:        ; bbWeight=0.44, gcrefRegs=20A8 {rbx rbp rdi r13}, byrefRe
        ; gcrRegs -[rax]
        jmp      SHORT G_M39873_IG26
 						;; size=2 bbWeight=0.44 PerfScore 0.87
-G_M39873_IG20:        ; bbWeight=0.15, gcrefRegs=20A9 {rax rbx rbp rdi r13}, byrefRegs=0000 {}, byref, isz
+G_M39873_IG20:        ; bbWeight=0.15, gcrefRegs=20A9 {rax rbx rbp rdi r13}, byrefRegs=0000 {}, byref, isz, align
        ; gcrRegs +[rax]
        mov      rcx, rax
        ; gcrRegs +[rcx]
@@ -358,7 +357,8 @@ G_M39873_IG20:        ; bbWeight=0.15, gcrefRegs=20A9 {rax rbx rbp rdi r13}, byr
        ; gcr arg pop 0
        mov      r12d, eax
        jmp      SHORT G_M39873_IG19
-						;; size=18 bbWeight=0.15 PerfScore 1.41
+       align    [15 bytes for IG22]
+						;; size=33 bbWeight=0.15 PerfScore 1.41
 G_M39873_IG21:        ; bbWeight=0.47, gcrefRegs=8040 {rsi r15}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rbx rbp rdi r13] +[rsi r15]
        mov      rcx, gword ptr [rsi+0x10]
@@ -997,7 +997,7 @@ G_M39873_IG75:        ; bbWeight=0, gcVars=00000000000000000000000000000000 {},
        jmp      G_M39873_IG56
 						;; size=13 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1719, prolog size 28, PerfScore 640.97, instruction count 435, allocated bytes for code 1719 (MethodHash=75ee643e) for method Microsoft.CodeAnalysis.CSharp.NullableWalker:CheckPossibleNullReceiver(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState,ubyte):ubyte:this (Tier1)
+; Total bytes of code 1735, prolog size 28, PerfScore 642.57, instruction count 435, allocated bytes for code 1735 (MethodHash=75ee643e) for method Microsoft.CodeAnalysis.CSharp.NullableWalker:CheckPossibleNullReceiver(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState,ubyte):ubyte:this (Tier1)
 ; ============================================================
 
 Unwind Info:
+18 (+1.24%) : 170494.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:g__getDeclaredMembersAndInitializers|171_0():Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializers:this (Tier1)
@@ -349,7 +349,6 @@ G_M12140_IG19:        ; bbWeight=0.39, gcrefRegs=40AA {rcx rbx rbp rdi r14}, byr
        mov      rdx, gword ptr [rcx+0x20]
        ; gcrRegs +[rdx]
        jmp      SHORT G_M12140_IG21
-       align    [0 bytes for IG39]
 						;; size=6 bbWeight=0.39 PerfScore 1.55
 G_M12140_IG20:        ; bbWeight=0.42, gcrefRegs=40AA {rcx rbx rbp rdi r14}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rdx]
@@ -595,14 +594,14 @@ G_M12140_IG32:        ; bbWeight=1, gcrefRegs=0060 {rbp rsi}, byrefRegs=0000 {},
        mov      rdi, gword ptr [rbp+0x18]
        ; gcrRegs +[rdi]
        test     rdi, rdi
-       je       SHORT G_M12140_IG42
+       je       G_M12140_IG42
        mov      rcx, gword ptr [rbp+0x08]
        ; gcrRegs +[rcx]
        test     rcx, rcx
        je       SHORT G_M12140_IG33
        cmp      gword ptr [rcx+0x08], 0
        jne      SHORT G_M12140_IG37
-						;; size=25 bbWeight=1 PerfScore 10.50
+						;; size=29 bbWeight=1 PerfScore 10.50
 G_M12140_IG33:        ; bbWeight=1, gcrefRegs=00E0 {rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rcx]
        mov      rcx, gword ptr [rbp+0x10]
@@ -630,13 +629,14 @@ G_M12140_IG36:        ; bbWeight=0.47, gcrefRegs=00E0 {rbp rsi rdi}, byrefRegs=0
        ; byrRegs -[rcx]
        jmp      SHORT G_M12140_IG44
 						;; size=14 bbWeight=0.47 PerfScore 1.75
-G_M12140_IG37:        ; bbWeight=0.07, gcrefRegs=00E2 {rcx rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
+G_M12140_IG37:        ; bbWeight=0.07, gcrefRegs=00E2 {rcx rbp rsi rdi}, byrefRegs=0000 {}, byref, isz, align
        ; gcrRegs +[rcx rbp rdi]
        xor      r11, r11
        ; gcrRegs +[r11]
        mov      gword ptr [rcx+0x08], r11
        jmp      SHORT G_M12140_IG33
-						;; size=9 bbWeight=0.07 PerfScore 0.23
+       align    [14 bytes for IG39]
+						;; size=23 bbWeight=0.07 PerfScore 0.23
 G_M12140_IG38:        ; bbWeight=0.53, gcrefRegs=00E0 {rbp rsi rdi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rcx r11]
        mov      rcx, gword ptr [rdi+0x10]
@@ -878,7 +878,7 @@ G_M12140_IG60:        ; bbWeight=0, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000
        jmp      G_M12140_IG32
 						;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1449, prolog size 31, PerfScore 605.50, instruction count 385, allocated bytes for code 1449 (MethodHash=c024d093) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:<BuildMembersAndInitializers>g__getDeclaredMembersAndInitializers|171_0():Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializers:this (Tier1)
+; Total bytes of code 1467, prolog size 31, PerfScore 607.30, instruction count 385, allocated bytes for code 1467 (MethodHash=c024d093) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:<BuildMembersAndInitializers>g__getDeclaredMembersAndInitializers|171_0():Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializers:this (Tier1)
 ; ============================================================
 
 Unwind Info:
+14 (+1.95%) : 616172.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex290_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
@@ -95,7 +95,7 @@ G_M38220_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      rbx, rcx
        ; gcrRegs +[rbx]
 						;; size=19 bbWeight=1 PerfScore 8.50
-G_M38220_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0004 {rdx}, byref, isz
+G_M38220_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0004 {rdx}, byref
        ; byrRegs +[rdx]
        mov      rsi, bword ptr [rdx]
        ; byrRegs +[rsi]
@@ -123,12 +123,13 @@ G_M38220_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0004 {rdx},
        sub      eax, dword ptr [rbx+0x58]
        mov      dword ptr [rsp+0x24], eax
        test     ebp, ebp
-       jne      SHORT G_M38220_IG05
-						;; size=69 bbWeight=1 PerfScore 22.25
+       jne      G_M38220_IG05
+						;; size=73 bbWeight=1 PerfScore 22.25
 G_M38220_IG03:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=C040 {rsi r14 r15}, byref, isz
        ; gcrRegs -[rcx]
        test     r13d, r13d
        jbe      SHORT G_M38220_IG05
+		  ;; NOP compensation instructions of 4 bytes.
        movzx    rcx, word  ptr [r15]
        add      ecx, -97
        cmp      ecx, 26
@@ -146,8 +147,8 @@ G_M38220_IG03:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=C040 {rsi
        ; gcr arg pop 0
        cmp      dword ptr [rbx+0x58], 0
        je       G_M38220_IG21
-						;; size=57 bbWeight=0.50 PerfScore 7.25
-G_M38220_IG04:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+						;; size=61 bbWeight=0.50 PerfScore 7.25
+G_M38220_IG04:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz, align
        mov      r9, gword ptr [rbx+0x20]
        ; gcrRegs +[r9]
        mov      ecx, dword ptr [rbx+0x58]
@@ -167,7 +168,8 @@ G_M38220_IG04:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
        jmp      G_M38220_IG10
-						;; size=62 bbWeight=0.50 PerfScore 10.50
+       align    [6 bytes for IG06]
+						;; size=68 bbWeight=0.50 PerfScore 10.50
 G_M38220_IG05:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=4040 {rsi r14}, byref, isz
        ; byrRegs +[rsi r14]
        mov      r15d, edi
@@ -182,7 +184,6 @@ G_M38220_IG05:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=4040 {rsi
        mov      r13d, dword ptr [rsp+0x24]
        cmp      eax, r13d
        jle      SHORT G_M38220_IG07
-       align    [0 bytes for IG06]
 						;; size=35 bbWeight=0.50 PerfScore 6.50
 G_M38220_IG06:        ; bbWeight=4, gcrefRegs=000A {rcx rbx}, byrefRegs=4040 {rsi r14}, loop=IG06, byref, isz
        mov      rax, rcx
@@ -406,7 +407,7 @@ G_M38220_IG24:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        jmp      G_M38220_IG12
 						;; size=14 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 717, prolog size 19, PerfScore 347.69, instruction count 208, allocated bytes for code 717 (MethodHash=ba056ab3) for method System.Text.RegularExpressions.CompiledRegexRunner:Regex290_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
+; Total bytes of code 731, prolog size 19, PerfScore 349.09, instruction count 208, allocated bytes for code 731 (MethodHash=ba056ab3) for method System.Text.RegularExpressions.CompiledRegexRunner:Regex290_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
 ; ============================================================
 
 Unwind Info:
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch
-16 (-2.56%) : 7451.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:EnsureNullableAttributeExists(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.Symbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder) (FullOpts)
@@ -208,6 +208,7 @@ G_M54037_IG11:        ; bbWeight=2, gcrefRegs=50C8 {rbx rsi rdi r12 r14}, byrefR
        ; gcrRegs -[rax]
        test     rsi, rsi
        je       SHORT G_M54037_IG14
+		  ;; NOP compensation instructions of 4 bytes.
        mov      ecx, dword ptr [rsi+0x128]
        mov      rdx, gword ptr [rsi+0xA8]
        ; gcrRegs +[rdx]
@@ -232,7 +233,7 @@ G_M54037_IG11:        ; bbWeight=2, gcrefRegs=50C8 {rbx rsi rdi r12 r14}, byrefR
        lea      rcx, bword ptr [rsi+0x128]
        ; byrRegs +[rcx]
        jmp      SHORT G_M54037_IG12
-       align    [8 bytes for IG12]
+       align    [4 bytes for IG12]
 						;; size=90 bbWeight=2 PerfScore 37.00
 G_M54037_IG12:        ; bbWeight=16, gcrefRegs=40C8 {rbx rsi rdi r14}, byrefRegs=0002 {rcx}, loop=IG12, byref, isz
        mov      eax, dword ptr [rcx]
@@ -249,8 +250,9 @@ G_M54037_IG12:        ; bbWeight=16, gcrefRegs=40C8 {rbx rsi rdi r14}, byrefRegs
 G_M54037_IG13:        ; bbWeight=2, gcrefRegs=40C8 {rbx rsi rdi r14}, byrefRegs=0000 {}, byref, isz
        ; byrRegs -[rcx]
        jmp      SHORT G_M54037_IG17
+       align    [0 bytes for IG15]
 						;; size=2 bbWeight=2 PerfScore 4.00
-G_M54037_IG14:        ; bbWeight=2, gcrefRegs=50C8 {rbx rsi rdi r12 r14}, byrefRegs=0000 {}, byref, isz, align
+G_M54037_IG14:        ; bbWeight=2, gcrefRegs=50C8 {rbx rsi rdi r12 r14}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[r12]
        mov      rcx, r12
        ; gcrRegs +[rcx]
@@ -278,9 +280,7 @@ G_M54037_IG14:        ; bbWeight=2, gcrefRegs=50C8 {rbx rsi rdi r12 r14}, byrefR
        je       SHORT G_M54037_IG16
        lea      rdx, bword ptr [rbx+0x16C]
        ; byrRegs +[rdx]
-       jmp      SHORT G_M54037_IG15
-       align    [14 bytes for IG15]
-						;; size=71 bbWeight=2 PerfScore 35.00
+						;; size=55 bbWeight=2 PerfScore 31.00
 G_M54037_IG15:        ; bbWeight=16, gcrefRegs=40C8 {rbx rsi rdi r14}, byrefRegs=0004 {rdx}, loop=IG15, byref, isz
        mov      eax, dword ptr [rdx]
        mov      dword ptr [rbp-0x58], eax
@@ -321,7 +321,7 @@ G_M54037_IG18:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        ret      
 						;; size=20 bbWeight=1 PerfScore 5.25
 
-; Total bytes of code 625, prolog size 68, PerfScore 1179.08, instruction count 157, allocated bytes for code 625 (MethodHash=4a2a2cea) for method Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:EnsureNullableAttributeExists(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.Symbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder) (FullOpts)
+; Total bytes of code 609, prolog size 68, PerfScore 1173.48, instruction count 156, allocated bytes for code 609 (MethodHash=4a2a2cea) for method Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:EnsureNullableAttributeExists(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.Symbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder) (FullOpts)
 ; ============================================================
 
 Unwind Info:
-7 (-1.74%) : 7205.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:LazyMethodChecks():this (FullOpts)
@@ -93,12 +93,12 @@ G_M360_IG06:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0004 {rdx}, loop=
        mov      r8d, eax
        or       r8d, 0x2000
        cmp      r8d, eax
-       je       G_M360_IG13
+       je       SHORT G_M360_IG13
        lock     
        cmpxchg  dword ptr [rdx], r8d
        cmp      eax, dword ptr [rbp-0x14]
        jne      SHORT G_M360_IG06
-						;; size=34 bbWeight=4 PerfScore 103.00
+						;; size=30 bbWeight=4 PerfScore 103.00
 G_M360_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        ; byrRegs -[rdx]
        mov      rax, 0xD1FFAB1E      ; const ptr
@@ -110,6 +110,7 @@ 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
 G_M360_IG08:        ; bbWeight=0, gcVars=0000000000000800 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[rax]
@@ -139,15 +140,13 @@ G_M360_IG09:        ; bbWeight=0.50, gcVars=0000000000000940 {V00 V01 V03}, gcre
        ; gcr arg pop 0
        nop      
 						;; size=32 bbWeight=0.50 PerfScore 6.75
-G_M360_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz, align
+G_M360_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      rcx, gword ptr [rbp+0x10]
        ; gcrRegs +[rcx]
        add      rcx, 108
        ; gcrRegs -[rcx]
        ; byrRegs +[rcx]
-       jmp      SHORT G_M360_IG11
-       align    [1 bytes for IG11]
-						;; size=11 bbWeight=0.50 PerfScore 1.62
+						;; size=8 bbWeight=0.50 PerfScore 0.62
 G_M360_IG11:        ; bbWeight=4, gcVars=0000000000000900 {V01 V03}, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, loop=IG11, gcvars, byref, isz
        ; GC ptr vars -{V00 V06 V08}
        mov      eax, dword ptr [rcx]
@@ -266,7 +265,7 @@ G_M360_IG24:        ; bbWeight=0, funclet epilog, nogc, extend
        ret      
 						;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 403, prolog size 25, PerfScore 289.05, instruction count 126, allocated bytes for code 403 (MethodHash=9b5bfe97) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:LazyMethodChecks():this (FullOpts)
+; 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)
 ; ============================================================
 
 Unwind Info:
-16 (-1.68%) : 46675.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:ForceComplete(Microsoft.CodeAnalysis.SourceLocation,System.Threading.CancellationToken):this (FullOpts)
@@ -360,10 +360,11 @@ G_M28841_IG22:        ; bbWeight=16, gcrefRegs=0048 {rbx rsi}, byrefRegs=0002 {r
        cmp      eax, dword ptr [rsp+0x44]
        jne      SHORT G_M28841_IG22
 						;; size=29 bbWeight=16 PerfScore 412.00
-G_M28841_IG23:        ; bbWeight=2, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
+G_M28841_IG23:        ; bbWeight=2, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz, align
        ; byrRegs -[rcx]
        jmp      G_M28841_IG32
-						;; size=5 bbWeight=2 PerfScore 4.00
+       align    [8 bytes for IG26]
+						;; size=13 bbWeight=2 PerfScore 4.00
 G_M28841_IG24:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
        ; gcrRegs -[rbx rsi]
        add      rsp, 80
@@ -376,13 +377,11 @@ G_M28841_IG24:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        pop      r15
        ret      
 						;; size=15 bbWeight=1 PerfScore 4.75
-G_M28841_IG25:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, gcvars, byref, isz, align
+G_M28841_IG25:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs +[rbx rsi]
        lea      rcx, bword ptr [rbx+0xC8]
        ; byrRegs +[rcx]
-       jmp      SHORT G_M28841_IG26
-       align    [6 bytes for IG26]
-						;; size=15 bbWeight=2 PerfScore 5.00
+						;; size=7 bbWeight=2 PerfScore 1.00
 G_M28841_IG26:        ; bbWeight=16, gcrefRegs=0048 {rbx rsi}, byrefRegs=0002 {rcx}, loop=IG26, byref, isz
        mov      eax, dword ptr [rcx]
        mov      dword ptr [rsp+0x40], eax
@@ -390,12 +389,11 @@ G_M28841_IG26:        ; bbWeight=16, gcrefRegs=0048 {rbx rsi}, byrefRegs=0002 {r
        or       edx, 256
        cmp      edx, eax
        je       SHORT G_M28841_IG32
-		  ;; NOP compensation instructions of 4 bytes.
        lock     
        cmpxchg  dword ptr [rcx], edx
        cmp      eax, dword ptr [rsp+0x40]
        jne      SHORT G_M28841_IG26
-						;; size=32 bbWeight=16 PerfScore 412.00
+						;; size=28 bbWeight=16 PerfScore 412.00
 G_M28841_IG27:        ; bbWeight=2, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz, align
        ; byrRegs -[rcx]
        mov      rcx, rbx
@@ -406,8 +404,8 @@ G_M28841_IG27:        ; bbWeight=2, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
        lea      rcx, bword ptr [rbx+0xC8]
        ; byrRegs +[rcx]
        jmp      SHORT G_M28841_IG28
-       align    [14 bytes for IG28]
-						;; size=32 bbWeight=2 PerfScore 11.50
+       align    [2 bytes for IG28]
+						;; size=20 bbWeight=2 PerfScore 11.50
 G_M28841_IG28:        ; bbWeight=16, gcrefRegs=0048 {rbx rsi}, byrefRegs=0002 {rcx}, loop=IG28, byref, isz
        mov      eax, dword ptr [rcx]
        mov      dword ptr [rsp+0x3C], eax
@@ -420,16 +418,15 @@ G_M28841_IG28:        ; bbWeight=16, gcrefRegs=0048 {rbx rsi}, byrefRegs=0002 {r
        cmp      eax, dword ptr [rsp+0x3C]
        jne      SHORT G_M28841_IG28
 						;; size=28 bbWeight=16 PerfScore 412.00
-G_M28841_IG29:        ; bbWeight=2, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+G_M28841_IG29:        ; bbWeight=2, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz, align
        ; byrRegs -[rcx]
        jmp      SHORT G_M28841_IG32
-						;; size=2 bbWeight=2 PerfScore 4.00
-G_M28841_IG30:        ; bbWeight=2, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz, align
+       align    [11 bytes for IG31]
+						;; size=13 bbWeight=2 PerfScore 4.00
+G_M28841_IG30:        ; bbWeight=2, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
        lea      rcx, bword ptr [rbx+0xC8]
        ; byrRegs +[rcx]
-       jmp      SHORT G_M28841_IG31
-       align    [9 bytes for IG31]
-						;; size=18 bbWeight=2 PerfScore 5.00
+						;; size=7 bbWeight=2 PerfScore 1.00
 G_M28841_IG31:        ; bbWeight=16, gcrefRegs=0048 {rbx rsi}, byrefRegs=0002 {rcx}, loop=IG31, byref, isz
        mov      eax, dword ptr [rcx]
        mov      dword ptr [rsp+0x38], eax
@@ -510,7 +507,7 @@ G_M28841_IG39:        ; bbWeight=0, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byr
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 952, prolog size 40, PerfScore 3415.23, instruction count 244, allocated bytes for code 952 (MethodHash=abee8f56) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:ForceComplete(Microsoft.CodeAnalysis.SourceLocation,System.Threading.CancellationToken):this (FullOpts)
+; Total bytes of code 936, prolog size 40, PerfScore 3405.63, instruction count 242, allocated bytes for code 936 (MethodHash=abee8f56) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:ForceComplete(Microsoft.CodeAnalysis.SourceLocation,System.Threading.CancellationToken):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
+10 (+1.16%) : 60214.dasm - System.Text.SBCSCodePageEncoding:ReadBestFitTable():this (FullOpts)
@@ -76,6 +76,7 @@ G_M57870_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
 G_M57870_IG03:        ; bbWeight=1, gcVars=0000000002000000 {V01}, gcrefRegs=0009 {rax rbx}, byrefRegs=0000 {}, gcvars, byref, isz
        cmp      byte  ptr [rbp-0x30], 0
        jne      SHORT G_M57870_IG08
+		  ;; NOP compensation instructions of 4 bytes.
        lea      rdx, [rbp-0x30]
        mov      rcx, rax
        ; gcrRegs +[rcx]
@@ -85,7 +86,7 @@ G_M57870_IG03:        ; bbWeight=1, gcVars=0000000002000000 {V01}, gcrefRegs=000
        movzx    rcx, byte  ptr [rbp-0x30]
        test     ecx, ecx
        jne      SHORT G_M57870_IG05
-						;; size=26 bbWeight=1 PerfScore 7.00
+						;; size=30 bbWeight=1 PerfScore 7.00
 G_M57870_IG04:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        mov      rdx, 0xD1FFAB1E
        ; gcrRegs +[rdx]
@@ -99,7 +100,7 @@ G_M57870_IG05:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        cmp      gword ptr [rbx+0x38], 0
        jne      G_M57870_IG38
 						;; size=11 bbWeight=1 PerfScore 4.00
-G_M57870_IG06:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M57870_IG06:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz, align
        mov      edx, dword ptr [rbx+0x64]
        add      edx, -512
        movsxd   rdx, edx
@@ -117,7 +118,8 @@ G_M57870_IG06:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
        xor      edx, edx
        mov      dword ptr [rbp-0x38], edx
        jmp      SHORT G_M57870_IG09
-						;; size=54 bbWeight=0.50 PerfScore 5.25
+       align    [6 bytes for IG17]
+						;; size=60 bbWeight=0.50 PerfScore 5.25
 G_M57870_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax rcx rbx rsi]
        ; GC ptr vars -{V04}
@@ -142,7 +144,6 @@ G_M57870_IG09:        ; bbWeight=0.50, gcVars=0000000012000000 {V01 V04}, gcrefR
        test     ecx, ecx
        jne      SHORT G_M57870_IG12
        jmp      SHORT G_M57870_IG11
-       align    [0 bytes for IG17]
 						;; size=25 bbWeight=0.50 PerfScore 4.38
 G_M57870_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rbx rsi]
@@ -489,7 +490,7 @@ G_M57870_IG49:        ; bbWeight=0, funclet epilog, nogc, extend
        ret      
 						;; size=13 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 861, prolog size 33, PerfScore 512.80, instruction count 262, allocated bytes for code 865 (MethodHash=ca671df1) for method System.Text.SBCSCodePageEncoding:ReadBestFitTable():this (FullOpts)
+; Total bytes of code 871, prolog size 33, PerfScore 513.80, instruction count 262, allocated bytes for code 875 (MethodHash=ca671df1) for method System.Text.SBCSCodePageEncoding:ReadBestFitTable():this (FullOpts)
 ; ============================================================
 
 Unwind Info:
+9 (+1.18%) : 289383.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex2718_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
@@ -168,6 +168,7 @@ G_M2587_IG07:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}
        mov      eax, ecx
        cmp      word  ptr [rsi+2*rax], 98
        jne      SHORT G_M2587_IG10
+		  ;; NOP compensation instructions of 4 bytes.
        dec      ecx
        cmp      ecx, edi
        jae      G_M2587_IG24
@@ -180,7 +181,7 @@ G_M2587_IG07:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}
        jge      SHORT G_M2587_IG08
        mov      edi, ebp
        mov      r13d, ecx
-						;; size=100 bbWeight=0.50 PerfScore 12.75
+						;; size=104 bbWeight=0.50 PerfScore 12.75
 G_M2587_IG08:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        ; byrRegs -[rsi]
        cmp      dword ptr [rbx+0x58], 0
@@ -191,7 +192,7 @@ G_M2587_IG08:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, b
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
 						;; size=15 bbWeight=0.50 PerfScore 3.62
-G_M2587_IG09:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+G_M2587_IG09:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz, align
        mov      r9, gword ptr [rbx+0x20]
        ; gcrRegs +[r9]
        mov      ecx, dword ptr [rbx+0x58]
@@ -212,7 +213,8 @@ G_M2587_IG09:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, b
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
        jmp      G_M2587_IG16
-						;; size=62 bbWeight=0.50 PerfScore 10.62
+       align    [5 bytes for IG12]
+						;; size=67 bbWeight=0.50 PerfScore 10.62
 G_M2587_IG10:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref, isz
        ; byrRegs +[rsi]
        test     r14d, r14d
@@ -232,7 +234,6 @@ G_M2587_IG11:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}
        sub      eax, dword ptr [rbx+0x58]
        cmp      eax, r13d
        jle      SHORT G_M2587_IG13
-       align    [0 bytes for IG12]
 						;; size=15 bbWeight=0.50 PerfScore 4.12
 G_M2587_IG12:        ; bbWeight=4, gcrefRegs=000A {rcx rbx}, byrefRegs=0040 {rsi}, loop=IG12, byref, isz
        mov      rax, rcx
@@ -432,7 +433,7 @@ G_M2587_IG25:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
 						;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 765, prolog size 17, PerfScore 368.50, instruction count 224, allocated bytes for code 765 (MethodHash=03a9f5e4) for method System.Text.RegularExpressions.CompiledRegexRunner:Regex2718_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
+; Total bytes of code 774, prolog size 17, PerfScore 369.40, instruction count 224, allocated bytes for code 774 (MethodHash=03a9f5e4) for method System.Text.RegularExpressions.CompiledRegexRunner:Regex2718_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
 ; ============================================================
 
 Unwind Info:
+16 (+5.03%) : 7449.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:EnsureScopedRefAttributeExists(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder) (FullOpts)
@@ -83,9 +83,9 @@ G_M38191_IG03:        ; bbWeight=4, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=
        test     eax, eax
        je       G_M38191_IG09
 						;; size=25 bbWeight=4 PerfScore 27.00
-G_M38191_IG04:        ; bbWeight=2, gcrefRegs=A0C8 {rbx rsi rdi r13 r15}, byrefRegs=0000 {}, byref, isz
+G_M38191_IG04:        ; bbWeight=2, gcrefRegs=A0C8 {rbx rsi rdi r13 r15}, byrefRegs=0000 {}, byref, isz, align
        test     rsi, rsi
-       je       SHORT G_M38191_IG07
+       je       G_M38191_IG07
        mov      ecx, dword ptr [rsi+0x128]
        mov      rdx, gword ptr [rsi+0xA8]
        ; gcrRegs +[rdx]
@@ -110,8 +110,8 @@ G_M38191_IG04:        ; bbWeight=2, gcrefRegs=A0C8 {rbx rsi rdi r13 r15}, byrefR
        lea      rcx, bword ptr [rsi+0x128]
        ; byrRegs +[rcx]
        jmp      SHORT G_M38191_IG05
-       align    [0 bytes for IG05]
-						;; size=82 bbWeight=2 PerfScore 37.00
+       align    [10 bytes for IG05]
+						;; size=96 bbWeight=2 PerfScore 37.00
 G_M38191_IG05:        ; bbWeight=16, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0002 {rcx}, loop=IG05, byref, isz
        mov      eax, dword ptr [rcx]
        mov      dword ptr [rsp+0x24], eax
@@ -124,11 +124,12 @@ G_M38191_IG05:        ; bbWeight=16, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs
        cmp      eax, dword ptr [rsp+0x24]
        jne      SHORT G_M38191_IG05
 						;; size=28 bbWeight=16 PerfScore 412.00
-G_M38191_IG06:        ; bbWeight=2, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref, isz
+G_M38191_IG06:        ; bbWeight=2, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref, isz, align
        ; byrRegs -[rcx]
        jmp      SHORT G_M38191_IG09
-						;; size=2 bbWeight=2 PerfScore 4.00
-G_M38191_IG07:        ; bbWeight=2, gcrefRegs=A0C8 {rbx rsi rdi r13 r15}, byrefRegs=0000 {}, byref, isz, align
+       align    [9 bytes for IG08]
+						;; size=11 bbWeight=2 PerfScore 4.00
+G_M38191_IG07:        ; bbWeight=2, gcrefRegs=A0C8 {rbx rsi rdi r13 r15}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[r13]
        mov      rcx, r13
        ; gcrRegs +[rcx]
@@ -157,9 +158,7 @@ G_M38191_IG07:        ; bbWeight=2, gcrefRegs=A0C8 {rbx rsi rdi r13 r15}, byrefR
        je       SHORT G_M38191_IG09
        lea      rcx, bword ptr [rbx+0x16C]
        ; byrRegs +[rcx]
-       jmp      SHORT G_M38191_IG08
-       align    [5 bytes for IG08]
-						;; size=64 bbWeight=2 PerfScore 41.00
+						;; size=57 bbWeight=2 PerfScore 37.00
 G_M38191_IG08:        ; bbWeight=16, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0002 {rcx}, loop=IG08, byref, isz
        mov      eax, dword ptr [rcx]
        mov      dword ptr [rsp+0x20], eax
@@ -193,7 +192,7 @@ G_M38191_IG10:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        ret      
 						;; size=17 bbWeight=1 PerfScore 5.25
 
-; Total bytes of code 318, prolog size 33, PerfScore 992.05, instruction count 96, allocated bytes for code 318 (MethodHash=350f6ad0) for method Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:EnsureScopedRefAttributeExists(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder) (FullOpts)
+; Total bytes of code 334, prolog size 33, PerfScore 989.65, instruction count 95, allocated bytes for code 334 (MethodHash=350f6ad0) for method Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:EnsureScopedRefAttributeExists(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder) (FullOpts)
 ; ============================================================
 
 Unwind Info:
realworld.run.windows.x64.checked.mch
-16 (-2.56%) : 23606.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:EnsureNullableAttributeExists(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.Symbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder) (FullOpts)
@@ -208,6 +208,7 @@ G_M54037_IG11:        ; bbWeight=2, gcrefRegs=50C8 {rbx rsi rdi r12 r14}, byrefR
        ; gcrRegs -[rax]
        test     rsi, rsi
        je       SHORT G_M54037_IG14
+		  ;; NOP compensation instructions of 4 bytes.
        mov      ecx, dword ptr [rsi+0x120]
        mov      rdx, gword ptr [rsi+0xA8]
        ; gcrRegs +[rdx]
@@ -232,7 +233,7 @@ G_M54037_IG11:        ; bbWeight=2, gcrefRegs=50C8 {rbx rsi rdi r12 r14}, byrefR
        lea      rcx, bword ptr [rsi+0x120]
        ; byrRegs +[rcx]
        jmp      SHORT G_M54037_IG12
-       align    [8 bytes for IG12]
+       align    [4 bytes for IG12]
 						;; size=90 bbWeight=2 PerfScore 37.00
 G_M54037_IG12:        ; bbWeight=16, gcrefRegs=40C8 {rbx rsi rdi r14}, byrefRegs=0002 {rcx}, loop=IG12, byref, isz
        mov      eax, dword ptr [rcx]
@@ -249,8 +250,9 @@ G_M54037_IG12:        ; bbWeight=16, gcrefRegs=40C8 {rbx rsi rdi r14}, byrefRegs
 G_M54037_IG13:        ; bbWeight=2, gcrefRegs=40C8 {rbx rsi rdi r14}, byrefRegs=0000 {}, byref, isz
        ; byrRegs -[rcx]
        jmp      SHORT G_M54037_IG17
+       align    [0 bytes for IG15]
 						;; size=2 bbWeight=2 PerfScore 4.00
-G_M54037_IG14:        ; bbWeight=2, gcrefRegs=50C8 {rbx rsi rdi r12 r14}, byrefRegs=0000 {}, byref, isz, align
+G_M54037_IG14:        ; bbWeight=2, gcrefRegs=50C8 {rbx rsi rdi r12 r14}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[r12]
        mov      rcx, r12
        ; gcrRegs +[rcx]
@@ -278,9 +280,7 @@ G_M54037_IG14:        ; bbWeight=2, gcrefRegs=50C8 {rbx rsi rdi r12 r14}, byrefR
        je       SHORT G_M54037_IG16
        lea      rdx, bword ptr [rbx+0x16C]
        ; byrRegs +[rdx]
-       jmp      SHORT G_M54037_IG15
-       align    [14 bytes for IG15]
-						;; size=71 bbWeight=2 PerfScore 35.00
+						;; size=55 bbWeight=2 PerfScore 31.00
 G_M54037_IG15:        ; bbWeight=16, gcrefRegs=40C8 {rbx rsi rdi r14}, byrefRegs=0004 {rdx}, loop=IG15, byref, isz
        mov      eax, dword ptr [rdx]
        mov      dword ptr [rbp-0x58], eax
@@ -321,7 +321,7 @@ G_M54037_IG18:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        ret      
 						;; size=20 bbWeight=1 PerfScore 5.25
 
-; Total bytes of code 625, prolog size 68, PerfScore 1179.08, instruction count 157, allocated bytes for code 625 (MethodHash=4a2a2cea) for method Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:EnsureNullableAttributeExists(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.Symbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder) (FullOpts)
+; Total bytes of code 609, prolog size 68, PerfScore 1173.48, instruction count 156, allocated bytes for code 609 (MethodHash=4a2a2cea) for method Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:EnsureNullableAttributeExists(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.Symbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder) (FullOpts)
 ; ============================================================
 
 Unwind Info:
-8 (-1.75%) : 29313.dasm - System.Text.RegularExpressions.RegexCharClass:CharInCategory(ushort,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
@@ -112,6 +112,7 @@ G_M23943_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx},
        ; gcr arg pop 0
        mov      ebp, eax
        jmp      SHORT G_M23943_IG05
+       align    [0 bytes for IG08]
 						;; size=12 bbWeight=0.50 PerfScore 2.75
 G_M23943_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
        mov      ecx, edi
@@ -147,9 +148,7 @@ G_M23943_IG07:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byr
        test     ecx, ecx
        jle      SHORT G_M23943_IG10
        xor      eax, eax
-       jmp      SHORT G_M23943_IG08
-       align    [0 bytes for IG08]
-						;; size=36 bbWeight=2 PerfScore 16.00
+						;; size=34 bbWeight=2 PerfScore 12.00
 G_M23943_IG08:        ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, loop=IG08, byref, isz
        dec      ecx
        cmp      ebp, ecx
@@ -166,10 +165,10 @@ G_M23943_IG08:        ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, lo
        test     ecx, ecx
        jne      SHORT G_M23943_IG08
 						;; size=42 bbWeight=16 PerfScore 120.00
-G_M23943_IG09:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz, align
+G_M23943_IG09:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
        jmp      SHORT G_M23943_IG12
-       align    [6 bytes for IG11]
-						;; size=8 bbWeight=2 PerfScore 4.00
+       align    [0 bytes for IG11]
+						;; size=2 bbWeight=2 PerfScore 4.00
 G_M23943_IG10:        ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
        mov      eax, 1
 						;; size=5 bbWeight=2 PerfScore 0.50
@@ -319,7 +318,7 @@ G_M23943_IG30:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 456, prolog size 12, PerfScore 435.98, instruction count 147, allocated bytes for code 456 (MethodHash=60c4a278) for method System.Text.RegularExpressions.RegexCharClass:CharInCategory(ushort,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
+; Total bytes of code 448, prolog size 12, PerfScore 431.18, instruction count 146, allocated bytes for code 448 (MethodHash=60c4a278) for method System.Text.RegularExpressions.RegexCharClass:CharInCategory(ushort,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
 ; ============================================================
 
 Unwind Info:
-16 (-1.65%) : 1337.dasm - BepuPhysics.CollisionDetection.PairCache:FlushMappingChanges():this (FullOpts)
@@ -352,6 +352,7 @@ G_M37502_IG13:        ; bbWeight=256, gcrefRegs=0002 {rcx}, byrefRegs=8404 {rdx
 G_M37502_IG14:        ; bbWeight=32, gcrefRegs=0002 {rcx}, byrefRegs=0404 {rdx r10}, byref, isz
        ; byrRegs -[r15]
        jmp      SHORT G_M37502_IG16
+       align    [0 bytes for IG22]
 						;; size=2 bbWeight=32 PerfScore 64.00
 G_M37502_IG15:        ; bbWeight=64, gcrefRegs=0002 {rcx}, byrefRegs=0404 {rdx r10}, byref
        mov      rsi, qword ptr [r10+0x10]
@@ -424,12 +425,10 @@ G_M37502_IG20:        ; bbWeight=16, gcrefRegs=0002 {rcx}, byrefRegs=0004 {rdx},
        test     ebp, ebp
        jle      SHORT G_M37502_IG23
 						;; size=109 bbWeight=16 PerfScore 464.00
-G_M37502_IG21:        ; bbWeight=8, gcrefRegs=0002 {rcx}, byrefRegs=0E04 {rdx r9 r10 r11}, byref, isz, align
+G_M37502_IG21:        ; bbWeight=8, gcrefRegs=0002 {rcx}, byrefRegs=0E04 {rdx r9 r10 r11}, byref
        ; byrRegs +[r10]
        mov      r14, qword ptr [r9+0x20]
-       jmp      SHORT G_M37502_IG22
-       align    [14 bytes for IG22]
-						;; size=20 bbWeight=8 PerfScore 32.00
+						;; size=4 bbWeight=8 PerfScore 16.00
 G_M37502_IG22:        ; bbWeight=64, gcrefRegs=0002 {rcx}, byrefRegs=0E04 {rdx r9 r10 r11}, loop=IG22, byref, isz
        dec      ebp
        movsxd   rbp, ebp
@@ -494,7 +493,7 @@ G_M37502_IG27:        ; bbWeight=0, gcVars=00000000000000000000000000000000 {},
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 971, prolog size 17, PerfScore 17061.02, instruction count 277, allocated bytes for code 971 (MethodHash=1c916d81) for method BepuPhysics.CollisionDetection.PairCache:FlushMappingChanges():this (FullOpts)
+; Total bytes of code 955, prolog size 17, PerfScore 17043.42, instruction count 276, allocated bytes for code 955 (MethodHash=1c916d81) for method BepuPhysics.CollisionDetection.PairCache:FlushMappingChanges():this (FullOpts)
 ; ============================================================
 
 Unwind Info:
+2 (+0.42%) : 651.dasm - System.Linq.Enumerable:MinFloat[double](System.Collections.Generic.IEnumerable`1[double]):double (FullOpts)
@@ -55,7 +55,7 @@ G_M43084_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      rdx, rcx
        ; gcrRegs +[rdx]
 						;; size=32 bbWeight=1 PerfScore 7.25
-G_M43084_IG02:        ; bbWeight=1, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byref, isz
+G_M43084_IG02:        ; bbWeight=1, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byref, isz, align
        test     rdx, rdx
        je       G_M43084_IG26
        mov      rcx, qword ptr [rdx]
@@ -66,8 +66,9 @@ G_M43084_IG02:        ; bbWeight=1, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byr
        ; byrRegs +[rax]
        mov      r8d, dword ptr [rdx+0x08]
        jmp      SHORT G_M43084_IG04
-						;; size=37 bbWeight=1 PerfScore 9.25
-G_M43084_IG03:        ; bbWeight=1, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byref
+       align    [2 bytes for IG05]
+						;; size=39 bbWeight=1 PerfScore 9.25
+G_M43084_IG03:        ; bbWeight=1, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byref, isz
        ; byrRegs -[rax]
        mov      rax, 0xD1FFAB1E      ; System.Collections.Generic.List`1[double]
        cmp      rcx, rax
@@ -87,7 +88,6 @@ G_M43084_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {rax}, byr
        mov      ecx, 1
        cmp      r8d, 1
        jbe      SHORT G_M43084_IG09
-       align    [0 bytes for IG05]
 						;; size=24 bbWeight=1 PerfScore 6.75
 G_M43084_IG05:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0001 {rax}, byref, isz
        cmp      ecx, r8d
@@ -272,7 +272,7 @@ G_M43084_IG31:        ; bbWeight=1, funclet epilog, nogc, extend
        ret      
 						;; size=12 bbWeight=1 PerfScore 5.75
 
-; Total bytes of code 479, prolog size 32, PerfScore 348.80, instruction count 126, allocated bytes for code 483 (MethodHash=4b6c57b3) for method System.Linq.Enumerable:MinFloat[double](System.Collections.Generic.IEnumerable`1[double]):double (FullOpts)
+; Total bytes of code 481, prolog size 32, PerfScore 348.60, instruction count 126, allocated bytes for code 481 (MethodHash=4b6c57b3) for method System.Linq.Enumerable:MinFloat[double](System.Collections.Generic.IEnumerable`1[double]):double (FullOpts)
 ; ============================================================
 
 Unwind Info:
+16 (+5.03%) : 23599.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:EnsureScopedRefAttributeExists(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder) (FullOpts)
@@ -83,9 +83,9 @@ G_M38191_IG03:        ; bbWeight=4, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=
        test     eax, eax
        je       G_M38191_IG09
 						;; size=25 bbWeight=4 PerfScore 27.00
-G_M38191_IG04:        ; bbWeight=2, gcrefRegs=A0C8 {rbx rsi rdi r13 r15}, byrefRegs=0000 {}, byref, isz
+G_M38191_IG04:        ; bbWeight=2, gcrefRegs=A0C8 {rbx rsi rdi r13 r15}, byrefRegs=0000 {}, byref, isz, align
        test     rsi, rsi
-       je       SHORT G_M38191_IG07
+       je       G_M38191_IG07
        mov      ecx, dword ptr [rsi+0x120]
        mov      rdx, gword ptr [rsi+0xA8]
        ; gcrRegs +[rdx]
@@ -110,8 +110,8 @@ G_M38191_IG04:        ; bbWeight=2, gcrefRegs=A0C8 {rbx rsi rdi r13 r15}, byrefR
        lea      rcx, bword ptr [rsi+0x120]
        ; byrRegs +[rcx]
        jmp      SHORT G_M38191_IG05
-       align    [0 bytes for IG05]
-						;; size=82 bbWeight=2 PerfScore 37.00
+       align    [10 bytes for IG05]
+						;; size=96 bbWeight=2 PerfScore 37.00
 G_M38191_IG05:        ; bbWeight=16, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0002 {rcx}, loop=IG05, byref, isz
        mov      eax, dword ptr [rcx]
        mov      dword ptr [rsp+0x24], eax
@@ -124,11 +124,12 @@ G_M38191_IG05:        ; bbWeight=16, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs
        cmp      eax, dword ptr [rsp+0x24]
        jne      SHORT G_M38191_IG05
 						;; size=28 bbWeight=16 PerfScore 412.00
-G_M38191_IG06:        ; bbWeight=2, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref, isz
+G_M38191_IG06:        ; bbWeight=2, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0000 {}, byref, isz, align
        ; byrRegs -[rcx]
        jmp      SHORT G_M38191_IG09
-						;; size=2 bbWeight=2 PerfScore 4.00
-G_M38191_IG07:        ; bbWeight=2, gcrefRegs=A0C8 {rbx rsi rdi r13 r15}, byrefRegs=0000 {}, byref, isz, align
+       align    [9 bytes for IG08]
+						;; size=11 bbWeight=2 PerfScore 4.00
+G_M38191_IG07:        ; bbWeight=2, gcrefRegs=A0C8 {rbx rsi rdi r13 r15}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[r13]
        mov      rcx, r13
        ; gcrRegs +[rcx]
@@ -157,9 +158,7 @@ G_M38191_IG07:        ; bbWeight=2, gcrefRegs=A0C8 {rbx rsi rdi r13 r15}, byrefR
        je       SHORT G_M38191_IG09
        lea      rcx, bword ptr [rbx+0x16C]
        ; byrRegs +[rcx]
-       jmp      SHORT G_M38191_IG08
-       align    [5 bytes for IG08]
-						;; size=64 bbWeight=2 PerfScore 41.00
+						;; size=57 bbWeight=2 PerfScore 37.00
 G_M38191_IG08:        ; bbWeight=16, gcrefRegs=80C8 {rbx rsi rdi r15}, byrefRegs=0002 {rcx}, loop=IG08, byref, isz
        mov      eax, dword ptr [rcx]
        mov      dword ptr [rsp+0x20], eax
@@ -193,7 +192,7 @@ G_M38191_IG10:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        ret      
 						;; size=17 bbWeight=1 PerfScore 5.25
 
-; Total bytes of code 318, prolog size 33, PerfScore 992.05, instruction count 96, allocated bytes for code 318 (MethodHash=350f6ad0) for method Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:EnsureScopedRefAttributeExists(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder) (FullOpts)
+; Total bytes of code 334, prolog size 33, PerfScore 989.65, instruction count 95, allocated bytes for code 334 (MethodHash=350f6ad0) for method Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:EnsureScopedRefAttributeExists(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder) (FullOpts)
 ; ============================================================
 
 Unwind Info:
+31 (+5.44%) : 10386.dasm - FSharp.Compiler.Infos+PropInfo:get_IsIndexer():ubyte:this (FullOpts)
@@ -82,7 +82,7 @@ G_M43322_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      rbx, rcx
        ; gcrRegs +[rbx]
 						;; size=11 bbWeight=1 PerfScore 4.50
-G_M43322_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M43322_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        mov      rdx, rbx
        ; gcrRegs +[rdx]
        mov      rcx, 0xD1FFAB1E      ; <unknown class>
@@ -90,8 +90,8 @@ G_M43322_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        ; gcrRegs -[rdx] +[rax]
        ; gcr arg pop 0
        test     rax, rax
-       jne      SHORT G_M43322_IG09
-						;; size=23 bbWeight=1 PerfScore 2.75
+       jne      G_M43322_IG09
+						;; size=27 bbWeight=1 PerfScore 2.75
 G_M43322_IG03:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rax]
        mov      rdx, rbx
@@ -122,7 +122,7 @@ G_M43322_IG05:        ; bbWeight=0.12, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
        ; gcrRegs -[rdx] +[rax]
        ; gcr arg pop 0
 						;; size=11 bbWeight=0.12 PerfScore 0.19
-G_M43322_IG06:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
+G_M43322_IG06:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz, align
        ; gcrRegs -[rax]
        mov      rcx, gword ptr [rbx+0x08]
        ; gcrRegs +[rcx]
@@ -131,8 +131,8 @@ G_M43322_IG06:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
        cmp      byte  ptr [rcx], cl
        xor      eax, eax
        jmp      SHORT G_M43322_IG07
-       align    [0 bytes for IG07]
-						;; size=18 bbWeight=0.50 PerfScore 5.62
+       align    [11 bytes for IG07]
+						;; size=29 bbWeight=0.50 PerfScore 5.62
 G_M43322_IG07:        ; bbWeight=4, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, loop=IG07, byref, isz
        ; gcrRegs -[rbx]
        mov      rcx, gword ptr [rcx+0x10]
@@ -141,13 +141,14 @@ G_M43322_IG07:        ; bbWeight=4, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, loo
        inc      eax
        jmp      SHORT G_M43322_IG07
 						;; size=13 bbWeight=4 PerfScore 22.00
-G_M43322_IG08:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M43322_IG08:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz, align
        ; gcrRegs -[rcx]
        xor      esi, esi
        test     eax, eax
        setne    sil
        jmp      G_M43322_IG25
-						;; size=13 bbWeight=0.50 PerfScore 1.75
+       align    [8 bytes for IG11]
+						;; size=21 bbWeight=0.50 PerfScore 1.75
 G_M43322_IG09:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rbx]
        mov      rcx, gword ptr [rbx+0x18]
@@ -159,7 +160,6 @@ G_M43322_IG09:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
        test     rax, rax
        je       G_M43322_IG27
        jmp      G_M43322_IG16
-       align    [0 bytes for IG11]
 						;; size=27 bbWeight=0.50 PerfScore 4.25
 G_M43322_IG10:        ; bbWeight=0.50, gcrefRegs=000A {rcx rbx}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax]
@@ -210,14 +210,15 @@ G_M43322_IG13:        ; bbWeight=4, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, loo
        inc      ecx
        jmp      SHORT G_M43322_IG13
 						;; size=13 bbWeight=4 PerfScore 22.00
-G_M43322_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M43322_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz, align
        ; gcrRegs -[rax]
        xor      esi, esi
        test     ecx, ecx
        setg     sil
        jmp      G_M43322_IG25
-						;; size=13 bbWeight=0.50 PerfScore 1.75
-G_M43322_IG15:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+       align    [10 bytes for IG17]
+						;; size=23 bbWeight=0.50 PerfScore 1.75
+G_M43322_IG15:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rbx]
        mov      rcx, rbx
        ; gcrRegs +[rcx]
@@ -226,7 +227,7 @@ G_M43322_IG15:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
        je       SHORT G_M43322_IG23
        jmp      SHORT G_M43322_IG23
 						;; size=20 bbWeight=0.50 PerfScore 3.25
-G_M43322_IG16:        ; bbWeight=0.50, gcrefRegs=0009 {rax rbx}, byrefRegs=0000 {}, byref, isz
+G_M43322_IG16:        ; bbWeight=0.50, gcrefRegs=0009 {rax rbx}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rcx] +[rax]
        mov      rsi, gword ptr [rbx+0x08]
        ; gcrRegs +[rsi]
@@ -247,9 +248,7 @@ G_M43322_IG16:        ; bbWeight=0.50, gcrefRegs=0009 {rax rbx}, byrefRegs=0000
        xor      ecx, ecx
        mov      rdx, rax
        ; gcrRegs +[rdx]
-       jmp      SHORT G_M43322_IG17
-       align    [0 bytes for IG17]
-						;; size=37 bbWeight=0.50 PerfScore 9.50
+						;; size=35 bbWeight=0.50 PerfScore 8.50
 G_M43322_IG17:        ; bbWeight=4, gcrefRegs=0005 {rax rdx}, byrefRegs=0000 {}, loop=IG17, byref, isz
        mov      rdx, gword ptr [rdx+0x10]
        test     rdx, rdx
@@ -368,7 +367,7 @@ G_M43322_IG28:        ; bbWeight=0, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byr
        jmp      G_M43322_IG24
 						;; size=25 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 570, prolog size 11, PerfScore 239.33, instruction count 166, allocated bytes for code 577 (MethodHash=7ae856c5) for method FSharp.Compiler.Infos+PropInfo:get_IsIndexer():ubyte:this (FullOpts)
+; Total bytes of code 601, prolog size 11, PerfScore 240.73, instruction count 165, allocated bytes for code 601 (MethodHash=7ae856c5) for method FSharp.Compiler.Infos+PropInfo:get_IsIndexer():ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
smoke_tests.nativeaot.windows.x64.checked.mch
-2 (-0.37%) : 1222.dasm - System.Runtime.CompilerServices.CastCache:TrySet(ulong,ulong,ubyte):this (FullOpts)
@@ -72,7 +72,7 @@ G_M30956_IG02:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byr
        cmp      dword ptr [r14+0x04], 1
        jne      SHORT G_M30956_IG04
 						;; size=14 bbWeight=8 PerfScore 50.00
-G_M30956_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref
+G_M30956_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref, isz
        ; byrRegs -[r14]
        mov      edx, dword ptr [rsi+0x08]
        mov      rcx, rsi
@@ -92,8 +92,9 @@ G_M30956_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0040 {rsi},
        ; gcrRegs -[rax rdx]
        ; byrRegs -[rcx rsi]
        jmp      G_M30956_IG19
+       align    [0 bytes for IG05]
 						;; size=39 bbWeight=0.50 PerfScore 4.12
-G_M30956_IG04:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=4040 {rsi r14}, byref, isz
+G_M30956_IG04:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=4040 {rsi r14}, byref
        ; byrRegs +[rsi r14]
        mov      r15, rbx
        rol      r15, 32
@@ -109,9 +110,7 @@ G_M30956_IG04:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=4040 {rsi r14},
        lea      r13, bword ptr [r14+8*rax]
        ; byrRegs +[r13]
        xor      edx, edx
-       jmp      SHORT G_M30956_IG05
-       align    [0 bytes for IG05]
-						;; size=50 bbWeight=4 PerfScore 46.00
+						;; size=48 bbWeight=4 PerfScore 38.00
 G_M30956_IG05:        ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=6040 {rsi r13 r14}, byref, isz
        mov      eax, dword ptr [r13]
        and      eax, -2
@@ -295,7 +294,7 @@ G_M30956_IG19:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
        ret      
 						;; size=17 bbWeight=0.50 PerfScore 2.62
 
-; Total bytes of code 541, prolog size 28, PerfScore 810.85, instruction count 170, allocated bytes for code 541 (MethodHash=e30d8713) for method System.Runtime.CompilerServices.CastCache:TrySet(ulong,ulong,ubyte):this (FullOpts)
+; Total bytes of code 539, prolog size 28, PerfScore 802.65, instruction count 169, allocated bytes for code 539 (MethodHash=e30d8713) for method System.Runtime.CompilerServices.CastCache:TrySet(ulong,ulong,ubyte):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
-2 (-0.37%) : 5032.dasm - System.Runtime.CompilerServices.CastCache:TrySet(ulong,ulong,ubyte):this (FullOpts)
@@ -73,7 +73,7 @@ G_M30956_IG02:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byr
        cmp      dword ptr [r14+0x04], 1
        jne      SHORT G_M30956_IG04
 						;; size=14 bbWeight=8 PerfScore 50.00
-G_M30956_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref
+G_M30956_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref, isz
        ; byrRegs -[r14]
        mov      edx, dword ptr [rsi+0x08]
        mov      rcx, rsi
@@ -93,8 +93,9 @@ G_M30956_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0040 {rsi},
        ; gcrRegs -[rax rdx]
        ; byrRegs -[rcx rsi]
        jmp      G_M30956_IG19
+       align    [0 bytes for IG05]
 						;; size=39 bbWeight=0.50 PerfScore 4.12
-G_M30956_IG04:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=4040 {rsi r14}, byref, isz
+G_M30956_IG04:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=4040 {rsi r14}, byref
        ; byrRegs +[rsi r14]
        mov      r15, rbx
        rol      r15, 32
@@ -110,9 +111,7 @@ G_M30956_IG04:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=4040 {rsi r14},
        lea      r13, bword ptr [r14+8*rax]
        ; byrRegs +[r13]
        xor      edx, edx
-       jmp      SHORT G_M30956_IG05
-       align    [0 bytes for IG05]
-						;; size=50 bbWeight=4 PerfScore 46.00
+						;; size=48 bbWeight=4 PerfScore 38.00
 G_M30956_IG05:        ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=6040 {rsi r13 r14}, byref, isz
        mov      eax, dword ptr [r13]
        and      eax, -2
@@ -296,7 +295,7 @@ G_M30956_IG19:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
        ret      
 						;; size=17 bbWeight=0.50 PerfScore 2.62
 
-; Total bytes of code 541, prolog size 28, PerfScore 810.85, instruction count 170, allocated bytes for code 541 (MethodHash=e30d8713) for method System.Runtime.CompilerServices.CastCache:TrySet(ulong,ulong,ubyte):this (FullOpts)
+; Total bytes of code 539, prolog size 28, PerfScore 802.65, instruction count 169, allocated bytes for code 539 (MethodHash=e30d8713) for method System.Runtime.CompilerServices.CastCache:TrySet(ulong,ulong,ubyte):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
-2 (-0.37%) : 16470.dasm - System.Runtime.CompilerServices.CastCache:TrySet(ulong,ulong,ubyte):this (FullOpts)
@@ -72,7 +72,7 @@ G_M30956_IG02:        ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byr
        cmp      dword ptr [r14+0x04], 1
        jne      SHORT G_M30956_IG04
 						;; size=14 bbWeight=8 PerfScore 50.00
-G_M30956_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref
+G_M30956_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0040 {rsi}, byref, isz
        ; byrRegs -[r14]
        mov      edx, dword ptr [rsi+0x08]
        mov      rcx, rsi
@@ -92,8 +92,9 @@ G_M30956_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0040 {rsi},
        ; gcrRegs -[rax rdx]
        ; byrRegs -[rcx rsi]
        jmp      G_M30956_IG19
+       align    [0 bytes for IG05]
 						;; size=39 bbWeight=0.50 PerfScore 4.12
-G_M30956_IG04:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=4040 {rsi r14}, byref, isz
+G_M30956_IG04:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=4040 {rsi r14}, byref
        ; byrRegs +[rsi r14]
        rorx     rax, rbx, 32
        xor      rax, rdi
@@ -108,9 +109,7 @@ G_M30956_IG04:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=4040 {rsi r14},
        lea      r13, bword ptr [r14+8*rax]
        ; byrRegs +[r13]
        xor      edx, edx
-       jmp      SHORT G_M30956_IG05
-       align    [0 bytes for IG05]
-						;; size=51 bbWeight=4 PerfScore 39.00
+						;; size=49 bbWeight=4 PerfScore 31.00
 G_M30956_IG05:        ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=6040 {rsi r13 r14}, byref, isz
        mov      eax, dword ptr [r13]
        and      eax, -2
@@ -294,7 +293,7 @@ G_M30956_IG19:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
        ret      
 						;; size=17 bbWeight=0.50 PerfScore 2.62
 
-; Total bytes of code 542, prolog size 28, PerfScore 803.95, instruction count 169, allocated bytes for code 542 (MethodHash=e30d8713) for method System.Runtime.CompilerServices.CastCache:TrySet(ulong,ulong,ubyte):this (FullOpts)
+; Total bytes of code 540, prolog size 28, PerfScore 795.75, instruction count 168, allocated bytes for code 540 (MethodHash=e30d8713) for method System.Runtime.CompilerServices.CastCache:TrySet(ulong,ulong,ubyte):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
+16 (+6.58%) : 875.dasm - System.SpanHelpers:NonPackedContainsValueType[short](byref,short,int):ubyte (FullOpts)
@@ -76,54 +76,53 @@ G_M55022_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx},
 						;; size=19 bbWeight=0.50 PerfScore 1.00
 G_M55022_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
        cmp      esi, 8
-       jge      SHORT G_M55022_IG10
+       jge      SHORT G_M55022_IG09
 		  ;; NOP compensation instructions of 4 bytes.
 						;; size=9 bbWeight=1 PerfScore 1.25
-G_M55022_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz, align
+G_M55022_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
        xor      eax, eax
-       jmp      SHORT G_M55022_IG06
-       align    [2 bytes for IG08]
-						;; size=6 bbWeight=0.50 PerfScore 1.12
-G_M55022_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
        cmp      esi, 4
-       jl       SHORT G_M55022_IG07
+       jl       SHORT G_M55022_IG06
        add      esi, -4
        movsx    rcx, word  ptr [rbx+2*rax]
        movsx    rdx, di
        cmp      ecx, edx
-       je       G_M55022_IG13
+       je       G_M55022_IG12
        movsx    rcx, word  ptr [rbx+2*rax+0x02]
        cmp      ecx, edx
-       je       G_M55022_IG13
+       je       G_M55022_IG12
        movsx    rcx, word  ptr [rbx+2*rax+0x04]
        cmp      ecx, edx
-       je       SHORT G_M55022_IG13
-		  ;; NOP compensation instructions of 4 bytes.
+       je       G_M55022_IG12
        movsx    rcx, word  ptr [rbx+2*rax+0x06]
        cmp      ecx, edx
-       je       SHORT G_M55022_IG13
+       je       SHORT G_M55022_IG12
+		  ;; NOP compensation instructions of 4 bytes.
        add      rax, 4
-						;; size=67 bbWeight=0.50 PerfScore 11.50
-G_M55022_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
+						;; size=73 bbWeight=0.50 PerfScore 11.62
+G_M55022_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
        test     esi, esi
-       jle      SHORT G_M55022_IG15
+       jle      SHORT G_M55022_IG14
+		  ;; NOP compensation instructions of 4 bytes.
        movsx    rdx, di
-						;; size=8 bbWeight=0.50 PerfScore 0.75
-G_M55022_IG08:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, loop=IG08, byref, isz
+       jmp      SHORT G_M55022_IG07
+       align    [0 bytes for IG07]
+						;; size=14 bbWeight=0.50 PerfScore 1.75
+G_M55022_IG07:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, loop=IG07, byref, isz
        dec      esi
        movsx    rcx, word  ptr [rbx+2*rax]
        cmp      ecx, edx
-       je       SHORT G_M55022_IG13
+       je       SHORT G_M55022_IG12
        inc      rax
        test     esi, esi
-       jg       SHORT G_M55022_IG08
+       jg       SHORT G_M55022_IG07
 						;; size=18 bbWeight=4 PerfScore 28.00
-G_M55022_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz, align
+G_M55022_IG08:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz, align
        ; byrRegs -[rbx]
-       jmp      SHORT G_M55022_IG15
-       align    [4 bytes for IG11]
-						;; size=6 bbWeight=0.50 PerfScore 1.00
-G_M55022_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
+       jmp      SHORT G_M55022_IG14
+       align    [14 bytes for IG10]
+						;; size=16 bbWeight=0.50 PerfScore 1.00
+G_M55022_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
        ; byrRegs +[rbx]
        movsx    rdx, di
        movd     xmm0, edx
@@ -133,40 +132,40 @@ G_M55022_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx},
        lea      rax, bword ptr [rbx+2*rax]
        ; byrRegs +[rax]
 						;; size=24 bbWeight=0.50 PerfScore 2.62
-G_M55022_IG11:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0009 {rax rbx}, loop=IG11, byref, isz
+G_M55022_IG10:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0009 {rax rbx}, loop=IG10, byref, isz
        movups   xmm1, xmmword ptr [rbx]
        pcmpeqw  xmm1, xmm0
        ptest    xmm1, xmm1
-       jne      SHORT G_M55022_IG13
+       jne      SHORT G_M55022_IG12
        add      rbx, 16
        cmp      rbx, rax
-       jbe      SHORT G_M55022_IG11
+       jbe      SHORT G_M55022_IG10
 						;; size=23 bbWeight=4 PerfScore 40.00
-G_M55022_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0001 {rax}, byref, isz
+G_M55022_IG11:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0001 {rax}, byref, isz
        ; byrRegs -[rbx]
        mov      ecx, esi
        test     cl, 7
-       je       SHORT G_M55022_IG15
+       je       SHORT G_M55022_IG14
        movups   xmm1, xmmword ptr [rax]
        pcmpeqw  xmm0, xmm1
        ptest    xmm0, xmm0
-       je       SHORT G_M55022_IG15
+       je       SHORT G_M55022_IG14
 						;; size=21 bbWeight=0.50 PerfScore 5.00
-G_M55022_IG13:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M55022_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; byrRegs -[rax]
        mov      eax, 1
 						;; size=5 bbWeight=0.50 PerfScore 0.12
-G_M55022_IG14:        ; bbWeight=0.50, epilog, nogc, extend
+G_M55022_IG13:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 32
        pop      rbx
        pop      rsi
        pop      rdi
        ret      
 						;; size=8 bbWeight=0.50 PerfScore 1.38
-G_M55022_IG15:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M55022_IG14:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        xor      eax, eax
 						;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M55022_IG16:        ; bbWeight=0.50, epilog, nogc, extend
+G_M55022_IG15:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 32
        pop      rbx
        pop      rsi
@@ -174,7 +173,7 @@ G_M55022_IG16:        ; bbWeight=0.50, epilog, nogc, extend
        ret      
 						;; size=8 bbWeight=0.50 PerfScore 1.38
 
-; Total bytes of code 243, prolog size 15, PerfScore 124.80, instruction count 78, allocated bytes for code 243 (MethodHash=725a2911) for method System.SpanHelpers:NonPackedContainsValueType[short](byref,short,int):ubyte (FullOpts)
+; Total bytes of code 259, prolog size 15, PerfScore 126.40, instruction count 78, allocated bytes for code 259 (MethodHash=725a2911) for method System.SpanHelpers:NonPackedContainsValueType[short](byref,short,int):ubyte (FullOpts)
 ; ============================================================
 
 Unwind Info:
+16 (+6.58%) : 4956.dasm - System.SpanHelpers:NonPackedContainsValueType[short](byref,short,int):ubyte (FullOpts)
@@ -77,54 +77,53 @@ G_M55022_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx},
 						;; size=19 bbWeight=0.50 PerfScore 1.00
 G_M55022_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
        cmp      esi, 8
-       jge      SHORT G_M55022_IG10
+       jge      SHORT G_M55022_IG09
 		  ;; NOP compensation instructions of 4 bytes.
 						;; size=9 bbWeight=1 PerfScore 1.25
-G_M55022_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz, align
+G_M55022_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
        xor      eax, eax
-       jmp      SHORT G_M55022_IG06
-       align    [2 bytes for IG08]
-						;; size=6 bbWeight=0.50 PerfScore 1.12
-G_M55022_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
        cmp      esi, 4
-       jl       SHORT G_M55022_IG07
+       jl       SHORT G_M55022_IG06
        add      esi, -4
        movsx    rcx, word  ptr [rbx+2*rax]
        movsx    rdx, di
        cmp      ecx, edx
-       je       G_M55022_IG13
+       je       G_M55022_IG12
        movsx    rcx, word  ptr [rbx+2*rax+0x02]
        cmp      ecx, edx
-       je       G_M55022_IG13
+       je       G_M55022_IG12
        movsx    rcx, word  ptr [rbx+2*rax+0x04]
        cmp      ecx, edx
-       je       SHORT G_M55022_IG13
-		  ;; NOP compensation instructions of 4 bytes.
+       je       G_M55022_IG12
        movsx    rcx, word  ptr [rbx+2*rax+0x06]
        cmp      ecx, edx
-       je       SHORT G_M55022_IG13
+       je       SHORT G_M55022_IG12
+		  ;; NOP compensation instructions of 4 bytes.
        add      rax, 4
-						;; size=67 bbWeight=0.50 PerfScore 11.50
-G_M55022_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
+						;; size=73 bbWeight=0.50 PerfScore 11.62
+G_M55022_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
        test     esi, esi
-       jle      SHORT G_M55022_IG15
+       jle      SHORT G_M55022_IG14
+		  ;; NOP compensation instructions of 4 bytes.
        movsx    rdx, di
-						;; size=8 bbWeight=0.50 PerfScore 0.75
-G_M55022_IG08:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, loop=IG08, byref, isz
+       jmp      SHORT G_M55022_IG07
+       align    [0 bytes for IG07]
+						;; size=14 bbWeight=0.50 PerfScore 1.75
+G_M55022_IG07:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, loop=IG07, byref, isz
        dec      esi
        movsx    rcx, word  ptr [rbx+2*rax]
        cmp      ecx, edx
-       je       SHORT G_M55022_IG13
+       je       SHORT G_M55022_IG12
        inc      rax
        test     esi, esi
-       jg       SHORT G_M55022_IG08
+       jg       SHORT G_M55022_IG07
 						;; size=18 bbWeight=4 PerfScore 28.00
-G_M55022_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz, align
+G_M55022_IG08:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz, align
        ; byrRegs -[rbx]
-       jmp      SHORT G_M55022_IG15
-       align    [4 bytes for IG11]
-						;; size=6 bbWeight=0.50 PerfScore 1.00
-G_M55022_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
+       jmp      SHORT G_M55022_IG14
+       align    [14 bytes for IG10]
+						;; size=16 bbWeight=0.50 PerfScore 1.00
+G_M55022_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
        ; byrRegs +[rbx]
        movsx    rdx, di
        movd     xmm0, edx
@@ -134,40 +133,40 @@ G_M55022_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx},
        lea      rax, bword ptr [rbx+2*rax]
        ; byrRegs +[rax]
 						;; size=24 bbWeight=0.50 PerfScore 2.62
-G_M55022_IG11:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0009 {rax rbx}, loop=IG11, byref, isz
+G_M55022_IG10:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0009 {rax rbx}, loop=IG10, byref, isz
        movups   xmm1, xmmword ptr [rbx]
        pcmpeqw  xmm1, xmm0
        ptest    xmm1, xmm1
-       jne      SHORT G_M55022_IG13
+       jne      SHORT G_M55022_IG12
        add      rbx, 16
        cmp      rbx, rax
-       jbe      SHORT G_M55022_IG11
+       jbe      SHORT G_M55022_IG10
 						;; size=23 bbWeight=4 PerfScore 40.00
-G_M55022_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0001 {rax}, byref, isz
+G_M55022_IG11:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0001 {rax}, byref, isz
        ; byrRegs -[rbx]
        mov      ecx, esi
        test     cl, 7
-       je       SHORT G_M55022_IG15
+       je       SHORT G_M55022_IG14
        movups   xmm1, xmmword ptr [rax]
        pcmpeqw  xmm0, xmm1
        ptest    xmm0, xmm0
-       je       SHORT G_M55022_IG15
+       je       SHORT G_M55022_IG14
 						;; size=21 bbWeight=0.50 PerfScore 5.00
-G_M55022_IG13:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M55022_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; byrRegs -[rax]
        mov      eax, 1
 						;; size=5 bbWeight=0.50 PerfScore 0.12
-G_M55022_IG14:        ; bbWeight=0.50, epilog, nogc, extend
+G_M55022_IG13:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 32
        pop      rbx
        pop      rsi
        pop      rdi
        ret      
 						;; size=8 bbWeight=0.50 PerfScore 1.38
-G_M55022_IG15:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M55022_IG14:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        xor      eax, eax
 						;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M55022_IG16:        ; bbWeight=0.50, epilog, nogc, extend
+G_M55022_IG15:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 32
        pop      rbx
        pop      rsi
@@ -175,7 +174,7 @@ G_M55022_IG16:        ; bbWeight=0.50, epilog, nogc, extend
        ret      
 						;; size=8 bbWeight=0.50 PerfScore 1.38
 
-; Total bytes of code 243, prolog size 15, PerfScore 124.80, instruction count 78, allocated bytes for code 243 (MethodHash=725a2911) for method System.SpanHelpers:NonPackedContainsValueType[short](byref,short,int):ubyte (FullOpts)
+; Total bytes of code 259, prolog size 15, PerfScore 126.40, instruction count 78, allocated bytes for code 259 (MethodHash=725a2911) for method System.SpanHelpers:NonPackedContainsValueType[short](byref,short,int):ubyte (FullOpts)
 ; ============================================================
 
 Unwind Info:
+20 (+8.58%) : 21685.dasm - System.SpanHelpers:NonPackedContainsValueType[short](byref,short,int):ubyte (FullOpts)
@@ -77,54 +77,53 @@ G_M55022_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx},
 						;; size=19 bbWeight=0.50 PerfScore 1.00
 G_M55022_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
        cmp      esi, 8
-       jge      SHORT G_M55022_IG10
+       jge      SHORT G_M55022_IG09
 		  ;; NOP compensation instructions of 4 bytes.
 						;; size=9 bbWeight=1 PerfScore 1.25
-G_M55022_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz, align
+G_M55022_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
        xor      eax, eax
-       jmp      SHORT G_M55022_IG06
-       align    [3 bytes for IG08]
-						;; size=7 bbWeight=0.50 PerfScore 1.12
-G_M55022_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
        cmp      esi, 4
-       jl       SHORT G_M55022_IG07
+       jl       SHORT G_M55022_IG06
        add      esi, -4
        movsx    rcx, word  ptr [rbx+2*rax]
        movsx    rdx, di
        cmp      ecx, edx
-       je       G_M55022_IG13
+       je       G_M55022_IG12
        movsx    rcx, word  ptr [rbx+2*rax+0x02]
        cmp      ecx, edx
-       je       SHORT G_M55022_IG13
-		  ;; NOP compensation instructions of 4 bytes.
+       je       G_M55022_IG12
        movsx    rcx, word  ptr [rbx+2*rax+0x04]
        cmp      ecx, edx
-       je       SHORT G_M55022_IG13
+       je       G_M55022_IG12
        movsx    rcx, word  ptr [rbx+2*rax+0x06]
        cmp      ecx, edx
-       je       SHORT G_M55022_IG13
+       je       SHORT G_M55022_IG12
+		  ;; NOP compensation instructions of 4 bytes.
        add      rax, 4
-						;; size=63 bbWeight=0.50 PerfScore 11.50
-G_M55022_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
+						;; size=73 bbWeight=0.50 PerfScore 11.62
+G_M55022_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
        test     esi, esi
-       jle      SHORT G_M55022_IG15
+       jle      SHORT G_M55022_IG14
+		  ;; NOP compensation instructions of 4 bytes.
        movsx    rdx, di
-						;; size=8 bbWeight=0.50 PerfScore 0.75
-G_M55022_IG08:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, loop=IG08, byref, isz
+       jmp      SHORT G_M55022_IG07
+       align    [0 bytes for IG07]
+						;; size=14 bbWeight=0.50 PerfScore 1.75
+G_M55022_IG07:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, loop=IG07, byref, isz
        dec      esi
        movsx    rcx, word  ptr [rbx+2*rax]
        cmp      ecx, edx
-       je       SHORT G_M55022_IG13
+       je       SHORT G_M55022_IG12
        inc      rax
        test     esi, esi
-       jg       SHORT G_M55022_IG08
+       jg       SHORT G_M55022_IG07
 						;; size=18 bbWeight=4 PerfScore 28.00
-G_M55022_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M55022_IG08:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz, align
        ; byrRegs -[rbx]
-       jmp      SHORT G_M55022_IG15
-       align    [0 bytes for IG11]
-						;; size=2 bbWeight=0.50 PerfScore 1.00
-G_M55022_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
+       jmp      SHORT G_M55022_IG14
+       align    [11 bytes for IG10]
+						;; size=13 bbWeight=0.50 PerfScore 1.00
+G_M55022_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
        ; byrRegs +[rbx]
        movsx    rdx, di
        vmovd    xmm0, edx
@@ -134,38 +133,38 @@ G_M55022_IG10:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx},
        lea      rax, bword ptr [rbx+2*rax]
        ; byrRegs +[rax]
 						;; size=24 bbWeight=0.50 PerfScore 2.62
-G_M55022_IG11:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0009 {rax rbx}, loop=IG11, byref, isz
+G_M55022_IG10:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0009 {rax rbx}, loop=IG10, byref, isz
        vpcmpeqw xmm1, xmm0, xmmword ptr [rbx]
        vptest   xmm1, xmm1
-       jne      SHORT G_M55022_IG13
+       jne      SHORT G_M55022_IG12
        add      rbx, 16
        cmp      rbx, rax
-       jbe      SHORT G_M55022_IG11
+       jbe      SHORT G_M55022_IG10
 						;; size=20 bbWeight=4 PerfScore 34.00
-G_M55022_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0001 {rax}, byref, isz
+G_M55022_IG11:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0001 {rax}, byref, isz
        ; byrRegs -[rbx]
        mov      ecx, esi
        test     cl, 7
-       je       SHORT G_M55022_IG15
+       je       SHORT G_M55022_IG14
        vpcmpeqw xmm0, xmm0, xmmword ptr [rax]
        vptest   xmm0, xmm0
-       je       SHORT G_M55022_IG15
+       je       SHORT G_M55022_IG14
 						;; size=18 bbWeight=0.50 PerfScore 4.25
-G_M55022_IG13:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M55022_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; byrRegs -[rax]
        mov      eax, 1
 						;; size=5 bbWeight=0.50 PerfScore 0.12
-G_M55022_IG14:        ; bbWeight=0.50, epilog, nogc, extend
+G_M55022_IG13:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 32
        pop      rbx
        pop      rsi
        pop      rdi
        ret      
 						;; size=8 bbWeight=0.50 PerfScore 1.38
-G_M55022_IG15:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M55022_IG14:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        xor      eax, eax
 						;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M55022_IG16:        ; bbWeight=0.50, epilog, nogc, extend
+G_M55022_IG15:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 32
        pop      rbx
        pop      rsi
@@ -173,7 +172,7 @@ G_M55022_IG16:        ; bbWeight=0.50, epilog, nogc, extend
        ret      
 						;; size=8 bbWeight=0.50 PerfScore 1.38
 
-; Total bytes of code 233, prolog size 18, PerfScore 118.05, instruction count 77, allocated bytes for code 233 (MethodHash=725a2911) for method System.SpanHelpers:NonPackedContainsValueType[short](byref,short,int):ubyte (FullOpts)
+; Total bytes of code 253, prolog size 18, PerfScore 120.05, instruction count 77, allocated bytes for code 253 (MethodHash=725a2911) for method System.SpanHelpers:NonPackedContainsValueType[short](byref,short,int):ubyte (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 91 19 6 66 -81 +57
benchmarks.run_pgo.windows.x64.checked.mch 216 91 5 120 -328 +74
benchmarks.run_tiered.windows.x64.checked.mch 86 37 3 46 -144 +39
coreclr_tests.run.windows.x64.checked.mch 235 77 6 152 -256 +52
libraries.crossgen2.windows.x64.checked.mch 0 0 0 0 -0 +0
libraries.pmi.windows.x64.checked.mch 137 23 5 109 -136 +54
libraries_tests.run.windows.x64.Release.mch 584 117 25 442 -484 +151
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch 249 35 20 194 -153 +148
realworld.run.windows.x64.checked.mch 85 25 3 57 -110 +49
smoke_tests.nativeaot.windows.x64.checked.mch 60 5 5 50 -10 +62
1,743 429 78 1,236 -1,702 +686

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
benchmarks.run.windows.x64.checked.mch 27,643 4 27,639 66 (0.24%) 66 (0.24%)
benchmarks.run_pgo.windows.x64.checked.mch 98,825 49,671 49,154 29 (0.03%) 29 (0.03%)
benchmarks.run_tiered.windows.x64.checked.mch 53,205 37,120 16,085 7 (0.01%) 7 (0.01%)
coreclr_tests.run.windows.x64.checked.mch 572,352 340,435 231,917 1,017 (0.18%) 1,017 (0.18%)
libraries.crossgen2.windows.x64.checked.mch 242,620 15 242,605 9 (0.00%) 9 (0.00%)
libraries.pmi.windows.x64.checked.mch 306,036 6 306,030 873 (0.28%) 873 (0.28%)
libraries_tests.run.windows.x64.Release.mch 683,213 478,296 204,917 768 (0.11%) 768 (0.11%)
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch 317,880 21,796 296,084 958 (0.30%) 958 (0.30%)
realworld.run.windows.x64.checked.mch 36,734 3 36,731 118 (0.32%) 118 (0.32%)
smoke_tests.nativeaot.windows.x64.checked.mch 32,314 10 32,304 114 (0.35%) 114 (0.35%)
2,370,822 927,356 1,443,466 3,959 (0.17%) 3,959 (0.17%)

jit-analyze output

@amanasifkhalid
Copy link
Member Author

win-arm64:

Diffs are based on 2,297,774 contexts (944,584 MinOpts, 1,353,190 FullOpts).

MISSED contexts: 3,791 (0.16%)

Overall (-2,972 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch 10,761,380 -136
benchmarks.run_pgo.windows.arm64.checked.mch 30,899,292 -464
benchmarks.run_tiered.windows.arm64.checked.mch 15,038,184 -192
coreclr_tests.run.windows.arm64.checked.mch 495,252,524 -400
libraries.crossgen2.windows.arm64.checked.mch 58,744,736 +0
libraries.pmi.windows.arm64.checked.mch 77,565,144 -252
libraries_tests.run.windows.arm64.Release.mch 299,635,492 -964
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch 166,461,060 -284
realworld.run.windows.arm64.checked.mch 15,636,744 -260
smoke_tests.nativeaot.windows.arm64.checked.mch 3,924,148 -20
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 15,822,836 +0
benchmarks.run_tiered.windows.arm64.checked.mch 11,271,812 +0
coreclr_tests.run.windows.arm64.checked.mch 343,982,572 +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 199,214,204 +0
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch 13,083,388 +0
realworld.run.windows.arm64.checked.mch 568,424 +0
smoke_tests.nativeaot.windows.arm64.checked.mch 972 +0
FullOpts (-2,972 bytes)
Collection Base size (bytes) Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch 10,760,844 -136
benchmarks.run_pgo.windows.arm64.checked.mch 15,076,456 -464
benchmarks.run_tiered.windows.arm64.checked.mch 3,766,372 -192
coreclr_tests.run.windows.arm64.checked.mch 151,269,952 -400
libraries.crossgen2.windows.arm64.checked.mch 58,743,100 +0
libraries.pmi.windows.arm64.checked.mch 77,445,160 -252
libraries_tests.run.windows.arm64.Release.mch 100,421,288 -964
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch 153,377,672 -284
realworld.run.windows.arm64.checked.mch 15,068,320 -260
smoke_tests.nativeaot.windows.arm64.checked.mch 3,923,176 -20
Example diffs
benchmarks.run.windows.arm64.checked.mch
-20 (-4.72%) : 17284.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:EnsureScopedRefAttributeExists(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder) (FullOpts)
@@ -130,11 +130,15 @@ G_M38191_IG05:        ; bbWeight=16, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefR
             cmp     w3, w1
             bne     G_M38191_IG05
 						;; size=32 bbWeight=16 PerfScore 160.00
-G_M38191_IG06:        ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=0000 {}, byref
+G_M38191_IG06:        ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=0000 {}, byref, isz
             ; byrRegs -[x0]
             b       G_M38191_IG09
+            align   [0 bytes for IG08]
+            align   [0 bytes]
+            align   [0 bytes]
+            align   [0 bytes]
 						;; size=4 bbWeight=2 PerfScore 2.00
-G_M38191_IG07:        ; bbWeight=2, gcrefRegs=5380000 {x19 x20 x21 x24 x26}, byrefRegs=0000 {}, byref, isz, align
+G_M38191_IG07:        ; bbWeight=2, gcrefRegs=5380000 {x19 x20 x21 x24 x26}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x26]
             mov     x0, x26
             ; gcrRegs +[x0]
@@ -171,12 +175,7 @@ G_M38191_IG07:        ; bbWeight=2, gcrefRegs=5380000 {x19 x20 x21 x24 x26}, byr
             beq     G_M38191_IG09
             add     x0, x20, #0xD1FFAB1E
             ; byrRegs +[x0]
-            b       G_M38191_IG08
-            align   [4 bytes for IG08]
-            align   [4 bytes]
-            align   [4 bytes]
-            align   [4 bytes]
-						;; size=124 bbWeight=2 PerfScore 57.00
+						;; size=104 bbWeight=2 PerfScore 55.00
 G_M38191_IG08:        ; bbWeight=16, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=0001 {x0}, loop=IG08, byref, isz
             ldr     w1, [x0]
             orr     w2, w1, #128
@@ -204,7 +203,7 @@ G_M38191_IG10:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ret     lr
 						;; size=24 bbWeight=1 PerfScore 6.00
 
-; Total bytes of code 424, prolog size 40, PerfScore 539.90, instruction count 108, allocated bytes for code 424 (MethodHash=350f6ad0) for method Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:EnsureScopedRefAttributeExists(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder) (FullOpts)
+; Total bytes of code 404, prolog size 40, PerfScore 535.90, instruction count 107, allocated bytes for code 404 (MethodHash=350f6ad0) for method Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:EnsureScopedRefAttributeExists(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder) (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -215,7 +214,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 106 (0x0006a) Actual length = 424 (0x0001a8)
+  Function Length   : 101 (0x00065) Actual length = 404 (0x000194)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-3.50%) : 17151.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:LazyMethodChecks():this (FullOpts)
@@ -100,7 +100,7 @@ G_M360_IG06:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=80001 {x0 x19}, l
             cmp     w3, w1
             bne     G_M360_IG06
 						;; size=32 bbWeight=4 PerfScore 40.00
-G_M360_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
+G_M360_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
             ; byrRegs -[x0]
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
@@ -116,6 +116,10 @@ G_M360_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, b
             str     x0, [fp, #0x10]	// [V03 loc2]
             ; GC ptr vars +{V03}
             b       G_M360_IG09
+            align   [0 bytes for IG11]
+            align   [0 bytes]
+            align   [0 bytes]
+            align   [0 bytes]
 						;; size=44 bbWeight=0.50 PerfScore 6.00
 G_M360_IG08:        ; bbWeight=0, gcVars=0000000000000800 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[x0]
@@ -151,14 +155,9 @@ G_M360_IG09:        ; bbWeight=0.50, gcVars=0000000000000A40 {V00 V01 V03}, gcre
             ; gcrRegs -[x0-x1]
             ; gcr arg pop 0
 						;; size=40 bbWeight=0.50 PerfScore 11.00
-G_M360_IG10:        ; bbWeight=0.50, gcVars=0000000000000A00 {V01 V03}, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, gcvars, byref, align
+G_M360_IG10:        ; bbWeight=0.50, gcVars=0000000000000A00 {V01 V03}, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, gcvars, byref
             ; GC ptr vars -{V00 V06 V09}
-            b       G_M360_IG11
-            align   [4 bytes for IG11]
-            align   [4 bytes]
-            align   [4 bytes]
-            align   [4 bytes]
-						;; size=20 bbWeight=0.50 PerfScore 0.50
+						;; size=0 bbWeight=0.50 PerfScore 0.00
 G_M360_IG11:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, loop=IG11, byref, isz
             ldr     w20, [x19]
             orr     w21, w20, #0xD1FFAB1E
@@ -270,7 +269,7 @@ G_M360_IG22:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, f
             ret     lr
 						;; size=16 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 572, prolog size 32, PerfScore 194.20, instruction count 143, allocated bytes for code 572 (MethodHash=9b5bfe97) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:LazyMethodChecks():this (FullOpts)
+; Total bytes of code 552, prolog size 32, PerfScore 191.70, instruction count 142, allocated bytes for code 552 (MethodHash=9b5bfe97) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:LazyMethodChecks():this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -281,7 +280,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 103 (0x00067) Actual length = 412 (0x00019c)
+  Function Length   : 98 (0x00062) Actual length = 392 (0x000188)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-2.78%) : 16915.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol+MergedGlobalAliasesAndUsings:Complete(Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol,System.Threading.CancellationToken):this (FullOpts)
@@ -180,19 +180,18 @@ G_M33245_IG11:        ; bbWeight=32, gcrefRegs=180000 {x19 x20}, byrefRegs=40000
             cmp     w0, w21
             bne     G_M33245_IG09
 						;; size=44 bbWeight=32 PerfScore 368.00
-G_M33245_IG12:        ; bbWeight=4, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+G_M33245_IG12:        ; bbWeight=4, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
             ; byrRegs -[x22]
             b       G_M33245_IG02
-						;; size=4 bbWeight=4 PerfScore 4.00
-G_M33245_IG13:        ; bbWeight=2, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
-            add     x0, x19, #24
-            ; byrRegs +[x0]
-            b       G_M33245_IG14
             align   [0 bytes for IG14]
             align   [0 bytes]
             align   [0 bytes]
             align   [0 bytes]
-						;; size=8 bbWeight=2 PerfScore 3.00
+						;; size=4 bbWeight=4 PerfScore 4.00
+G_M33245_IG13:        ; bbWeight=2, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+            add     x0, x19, #24
+            ; byrRegs +[x0]
+						;; size=4 bbWeight=2 PerfScore 1.00
 G_M33245_IG14:        ; bbWeight=16, gcrefRegs=180000 {x19 x20}, byrefRegs=0001 {x0}, loop=IG14, byref, isz
             ldr     w1, [x0]
             orr     w2, w1, #16
@@ -260,15 +259,15 @@ G_M33245_IG16:        ; bbWeight=2, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=00
             ; gcrRegs -[x0 x2 x22]
             ; gcr arg pop 0
 						;; size=44 bbWeight=2 PerfScore 32.00
-G_M33245_IG17:        ; bbWeight=2, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, align
+G_M33245_IG17:        ; bbWeight=2, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
             add     x0, x19, #24
             ; byrRegs +[x0]
             b       G_M33245_IG18
-            align   [4 bytes for IG18]
-            align   [4 bytes]
-            align   [4 bytes]
-            align   [4 bytes]
-						;; size=24 bbWeight=2 PerfScore 3.00
+            align   [0 bytes for IG18]
+            align   [0 bytes]
+            align   [0 bytes]
+            align   [0 bytes]
+						;; size=8 bbWeight=2 PerfScore 3.00
 G_M33245_IG18:        ; bbWeight=16, gcrefRegs=180000 {x19 x20}, byrefRegs=0001 {x0}, loop=IG18, byref, isz
             ldr     w1, [x0]
             orr     w2, w1, #32
@@ -368,7 +367,7 @@ G_M33245_IG28:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             brk_windows #0
 						;; size=28 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 720, prolog size 40, PerfScore 1701.00, instruction count 187, allocated bytes for code 720 (MethodHash=12467e22) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol+MergedGlobalAliasesAndUsings:Complete(Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol,System.Threading.CancellationToken):this (FullOpts)
+; Total bytes of code 700, prolog size 40, PerfScore 1697.00, instruction count 186, allocated bytes for code 700 (MethodHash=12467e22) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol+MergedGlobalAliasesAndUsings:Complete(Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol,System.Threading.CancellationToken):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -379,7 +378,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 180 (0x000b4) Actual length = 720 (0x0002d0)
+  Function Length   : 175 (0x000af) Actual length = 700 (0x0002bc)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+0 (0.00%) : 24560.dasm - System.Collections.Generic.SortedSet`1[int]:get_MaxInternal():int:this (FullOpts)

No diffs found?

+0 (0.00%) : 24576.dasm - Jil.Deserialize.Methods:AssertNotFollowedByDigit(byref) (FullOpts)

No diffs found?

+0 (0.00%) : 24592.dasm - System.Threading.Tasks.Tests.Perf_AsyncMethods:Yield():System.Threading.Tasks.Task:this (FullOpts)

No diffs found?

benchmarks.run_pgo.windows.arm64.checked.mch
-32 (-2.74%) : 12023.dasm - Benchstone.MDBenchI.MDNDhrystone:Proc0() (Tier1-OSR)
@@ -101,10 +101,14 @@ G_M15103_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ldp     w22, w20, [fp, #0x84]
             ldp     w19, w21, [fp, #0x68]
 						;; size=28 bbWeight=1 PerfScore 8.50
-G_M15103_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M15103_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             b       G_M15103_IG17
+            align   [0 bytes for IG04]
+            align   [0 bytes]
+            align   [0 bytes]
+            align   [0 bytes]
 						;; size=4 bbWeight=1 PerfScore 1.00
-G_M15103_IG03:        ; bbWeight=33.33, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz, align
+G_M15103_IG03:        ; bbWeight=33.33, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             mov     w0, #65
             strh    w0, [x23, #0x04]
             strb    wzr, [x23, #0x08]
@@ -153,12 +157,7 @@ G_M15103_IG03:        ; bbWeight=33.33, gcrefRegs=0000 {}, byrefRegs=0000 {}, by
             ; byrRegs +[x14]
             add     x2, x15, #16
             ; byrRegs +[x2]
-            b       G_M15103_IG04
-            align   [4 bytes for IG04]
-            align   [4 bytes]
-            align   [0 bytes]
-            align   [0 bytes]
-						;; size=160 bbWeight=33.33 PerfScore 1300.00
+						;; size=148 bbWeight=33.33 PerfScore 1266.67
 G_M15103_IG04:        ; bbWeight=33.33, gcrefRegs=8000 {x15}, byrefRegs=4004 {x2 x14}, byref, isz
             cmp     wip0, w0
             bhs     G_M15103_IG30
@@ -258,16 +257,16 @@ G_M15103_IG11:        ; bbWeight=33.33, gcrefRegs=0000 {}, byrefRegs=0000 {}, by
             cmp     wip0, w3
             bgt     G_M15103_IG14
 						;; size=80 bbWeight=33.33 PerfScore 716.67
-G_M15103_IG12:        ; bbWeight=22.22, gcrefRegs=1000 {x12}, byrefRegs=8000 {x15}, byref, isz, align
+G_M15103_IG12:        ; bbWeight=22.22, gcrefRegs=1000 {x12}, byrefRegs=8000 {x15}, byref, isz
             ldr     w0, [x12, #0x18]
             sub     w0, w14, w0
             ldr     w4, [x12, #0x10]
             b       G_M15103_IG13
-            align   [4 bytes for IG13]
+            align   [0 bytes for IG13]
             align   [0 bytes]
             align   [0 bytes]
             align   [0 bytes]
-						;; size=20 bbWeight=22.22 PerfScore 166.67
+						;; size=16 bbWeight=22.22 PerfScore 166.67
 G_M15103_IG13:        ; bbWeight=66.67, gcrefRegs=1000 {x12}, byrefRegs=8000 {x15}, loop=IG13, byref, isz
             sxtw    w5, w0
             cmp     w5, w4
@@ -285,7 +284,7 @@ G_M15103_IG13:        ; bbWeight=66.67, gcrefRegs=1000 {x12}, byrefRegs=8000 {x1
             cmp     w14, w3
             ble     G_M15103_IG13
 						;; size=60 bbWeight=66.67 PerfScore 1100.00
-G_M15103_IG14:        ; bbWeight=133.33, gcrefRegs=1000 {x12}, byrefRegs=8000 {x15}, byref, isz, align
+G_M15103_IG14:        ; bbWeight=133.33, gcrefRegs=1000 {x12}, byrefRegs=8000 {x15}, byref, isz
             ldr     w0, [x12, #0x18]
             sub     w0, wip0, w0
             sxtw    w5, w0
@@ -408,11 +407,11 @@ G_M15103_IG14:        ; bbWeight=133.33, gcrefRegs=1000 {x12}, byrefRegs=8000 {x
             add     w14, w14, #12
             str     w14, [x15]
             b       G_M15103_IG16
-            align   [4 bytes for IG25]
-            align   [4 bytes]
-            align   [4 bytes]
-            align   [4 bytes]
-						;; size=352 bbWeight=133.33 PerfScore 15733.33
+            align   [0 bytes for IG25]
+            align   [0 bytes]
+            align   [0 bytes]
+            align   [0 bytes]
+						;; size=336 bbWeight=133.33 PerfScore 15733.33
 G_M15103_IG15:        ; bbWeight=133.33, gcrefRegs=8000 {x15}, byrefRegs=80000 {x19}, byref
             ; gcrRegs -[x1] +[x15]
             ; byrRegs -[x15] +[x19]
@@ -534,7 +533,7 @@ G_M15103_IG35:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ret     lr
 						;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1168, prolog size 28, PerfScore 33245.12, instruction count 305, allocated bytes for code 1168 (MethodHash=7564c500) for method Benchstone.MDBenchI.MDNDhrystone:Proc0() (Tier1-OSR)
+; Total bytes of code 1136, prolog size 28, PerfScore 33208.58, instruction count 304, allocated bytes for code 1136 (MethodHash=7564c500) for method Benchstone.MDBenchI.MDNDhrystone:Proc0() (Tier1-OSR)
 ; ============================================================
 
 Unwind Info:
@@ -545,7 +544,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 292 (0x00124) Actual length = 1168 (0x000490)
+  Function Length   : 284 (0x0011c) Actual length = 1136 (0x000470)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-28 (-2.46%) : 21791.dasm - Benchstone.BenchI.NDhrystone:Proc0() (Tier1-OSR)
@@ -106,10 +106,14 @@ G_M44703_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ldp     w22, w20, [fp, #0x84]
             ldp     w19, w21, [fp, #0x68]
 						;; size=28 bbWeight=1 PerfScore 8.50
-G_M44703_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M44703_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             b       G_M44703_IG17
+            align   [0 bytes for IG04]
+            align   [0 bytes]
+            align   [0 bytes]
+            align   [0 bytes]
 						;; size=4 bbWeight=1 PerfScore 1.00
-G_M44703_IG03:        ; bbWeight=33.33, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz, align
+G_M44703_IG03:        ; bbWeight=33.33, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             mov     w0, #65
             strh    w0, [x23, #0x04]
             strb    wzr, [x23, #0x08]
@@ -158,12 +162,7 @@ G_M44703_IG03:        ; bbWeight=33.33, gcrefRegs=0000 {}, byrefRegs=0000 {}, by
             ; byrRegs +[x14]
             add     x2, x15, #16
             ; byrRegs +[x2]
-            b       G_M44703_IG04
-            align   [4 bytes for IG04]
-            align   [4 bytes]
-            align   [0 bytes]
-            align   [0 bytes]
-						;; size=160 bbWeight=33.33 PerfScore 1300.00
+						;; size=148 bbWeight=33.33 PerfScore 1266.67
 G_M44703_IG04:        ; bbWeight=33.33, gcrefRegs=8000 {x15}, byrefRegs=4004 {x2 x14}, byref, isz
             cmp     wip0, w0
             bhs     G_M44703_IG30
@@ -294,7 +293,7 @@ G_M44703_IG13:        ; bbWeight=66.67, gcrefRegs=1001 {x0 x12}, byrefRegs=8000
             cmp     w14, w4
             ble     G_M44703_IG13
 						;; size=36 bbWeight=66.67 PerfScore 566.67
-G_M44703_IG14:        ; bbWeight=133.33, gcrefRegs=1000 {x12}, byrefRegs=8000 {x15}, byref, isz, align
+G_M44703_IG14:        ; bbWeight=133.33, gcrefRegs=1000 {x12}, byrefRegs=8000 {x15}, byref, isz
             ; gcrRegs -[x0]
             ; byrRegs -[x5]
             ldr     w0, [x12, #0x08]
@@ -422,11 +421,11 @@ G_M44703_IG14:        ; bbWeight=133.33, gcrefRegs=1000 {x12}, byrefRegs=8000 {x
             add     w14, w14, #12
             str     w14, [x15]
             b       G_M44703_IG16
-            align   [4 bytes for IG25]
-            align   [4 bytes]
-            align   [4 bytes]
-            align   [4 bytes]
-						;; size=332 bbWeight=133.33 PerfScore 15333.33
+            align   [0 bytes for IG25]
+            align   [0 bytes]
+            align   [0 bytes]
+            align   [0 bytes]
+						;; size=316 bbWeight=133.33 PerfScore 15333.33
 G_M44703_IG15:        ; bbWeight=133.33, gcrefRegs=8000 {x15}, byrefRegs=80000 {x19}, byref
             ; gcrRegs -[x1] +[x15]
             ; byrRegs -[x15] +[x19]
@@ -548,7 +547,7 @@ G_M44703_IG35:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ret     lr
 						;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1136, prolog size 28, PerfScore 32380.81, instruction count 298, allocated bytes for code 1136 (MethodHash=4a4c5160) for method Benchstone.BenchI.NDhrystone:Proc0() (Tier1-OSR)
+; Total bytes of code 1108, prolog size 28, PerfScore 32344.67, instruction count 297, allocated bytes for code 1108 (MethodHash=4a4c5160) for method Benchstone.BenchI.NDhrystone:Proc0() (Tier1-OSR)
 ; ============================================================
 
 Unwind Info:
@@ -559,7 +558,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 284 (0x0011c) Actual length = 1136 (0x000470)
+  Function Length   : 277 (0x00115) Actual length = 1108 (0x000454)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-4 (-2.22%) : 76131.dasm - NumericSortRect:LoadNumArrayWithRand(int[,],int,int) (Tier1-OSR)
@@ -46,8 +46,12 @@ G_M50875_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ldp     w2, w1, [fp, #0x40]
             ldp     w3, w4, [fp, #0x38]
 						;; size=20 bbWeight=1 PerfScore 7.50
-G_M50875_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
+G_M50875_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             b       G_M50875_IG04
+            align   [0 bytes for IG06]
+            align   [0 bytes]
+            align   [0 bytes]
+            align   [0 bytes]
 						;; size=4 bbWeight=1 PerfScore 1.00
 G_M50875_IG03:        ; bbWeight=0.02, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
             mov     w3, wzr
@@ -56,16 +60,11 @@ G_M50875_IG04:        ; bbWeight=0.02, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, b
             cmp     w3, w1
             bge     G_M50875_IG07
 						;; size=8 bbWeight=0.02 PerfScore 0.02
-G_M50875_IG05:        ; bbWeight=0.02, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
+G_M50875_IG05:        ; bbWeight=0.02, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
             ldr     w5, [x0, #0x18]
             sub     w6, w2, w5
             ldr     w7, [x0, #0x10]
-            b       G_M50875_IG06
-            align   [0 bytes for IG06]
-            align   [0 bytes]
-            align   [0 bytes]
-            align   [0 bytes]
-						;; size=16 bbWeight=0.02 PerfScore 0.11
+						;; size=12 bbWeight=0.02 PerfScore 0.10
 G_M50875_IG06:        ; bbWeight=99.98, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, loop=IG06, byref, isz
             sxtw    w8, w6
             cmp     w8, w7
@@ -109,7 +108,7 @@ G_M50875_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ret     lr
 						;; size=12 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 180, prolog size 20, PerfScore 2626.30, instruction count 49, allocated bytes for code 180 (MethodHash=89573944) for method NumericSortRect:LoadNumArrayWithRand(int[,],int,int) (Tier1-OSR)
+; Total bytes of code 176, prolog size 20, PerfScore 2625.88, instruction count 48, allocated bytes for code 176 (MethodHash=89573944) for method NumericSortRect:LoadNumArrayWithRand(int[,],int,int) (Tier1-OSR)
 ; ============================================================
 
 Unwind Info:
@@ -120,7 +119,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 45 (0x0002d) Actual length = 180 (0x0000b4)
+  Function Length   : 44 (0x0002c) Actual length = 176 (0x0000b0)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+0 (0.00%) : 77504.dasm - System.Random+XoshiroImpl:NextBytes(ubyte[]):this (Tier0)

No diffs found?

+0 (0.00%) : 77520.dasm - System.Collections.IterateForEach`1[System.__Canon]:SetupImmutableSortedDictionary():this (Tier0)

No diffs found?

+0 (0.00%) : 77536.dasm - System.Diagnostics.Debug+AssertInterpolatedStringHandler:ToStringAndClear():System.String:this (Tier1)

No diffs found?

benchmarks.run_tiered.windows.arm64.checked.mch
-20 (-3.50%) : 37360.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:LazyMethodChecks():this (Tier1)
@@ -100,7 +100,7 @@ G_M360_IG06:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=80001 {x0 x19}, l
             cmp     w3, w1
             bne     G_M360_IG06
 						;; size=32 bbWeight=4 PerfScore 40.00
-G_M360_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref
+G_M360_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, byref, isz
             ; byrRegs -[x0]
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
@@ -116,6 +116,10 @@ G_M360_IG07:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, b
             str     x0, [fp, #0x10]	// [V03 loc2]
             ; GC ptr vars +{V03}
             b       G_M360_IG09
+            align   [0 bytes for IG11]
+            align   [0 bytes]
+            align   [0 bytes]
+            align   [0 bytes]
 						;; size=44 bbWeight=0.50 PerfScore 6.00
 G_M360_IG08:        ; bbWeight=0, gcVars=0000000000000800 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[x0]
@@ -151,14 +155,9 @@ G_M360_IG09:        ; bbWeight=0.50, gcVars=0000000000000A40 {V00 V01 V03}, gcre
             ; gcrRegs -[x0-x1]
             ; gcr arg pop 0
 						;; size=40 bbWeight=0.50 PerfScore 11.00
-G_M360_IG10:        ; bbWeight=0.50, gcVars=0000000000000A00 {V01 V03}, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, gcvars, byref, align
+G_M360_IG10:        ; bbWeight=0.50, gcVars=0000000000000A00 {V01 V03}, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, gcvars, byref
             ; GC ptr vars -{V00 V06 V09}
-            b       G_M360_IG11
-            align   [4 bytes for IG11]
-            align   [4 bytes]
-            align   [4 bytes]
-            align   [4 bytes]
-						;; size=20 bbWeight=0.50 PerfScore 0.50
+						;; size=0 bbWeight=0.50 PerfScore 0.00
 G_M360_IG11:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=80000 {x19}, loop=IG11, byref, isz
             ldr     w20, [x19]
             orr     w21, w20, #0xD1FFAB1E
@@ -270,7 +269,7 @@ G_M360_IG22:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, f
             ret     lr
 						;; size=16 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 572, prolog size 32, PerfScore 194.20, instruction count 143, allocated bytes for code 572 (MethodHash=9b5bfe97) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:LazyMethodChecks():this (Tier1)
+; Total bytes of code 552, prolog size 32, PerfScore 191.70, instruction count 142, allocated bytes for code 552 (MethodHash=9b5bfe97) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:LazyMethodChecks():this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -281,7 +280,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 103 (0x00067) Actual length = 412 (0x00019c)
+  Function Length   : 98 (0x00062) Actual length = 392 (0x000188)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-12 (-2.68%) : 23762.dasm - Benchstone.BenchF.InvMt:Inner(double[][],byref,byref) (Tier1-OSR)
@@ -55,12 +55,16 @@ G_M35463_IG01:        ; bbWeight=0.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
             ldr     w5, [fp, #0x54]
             ldp     w3, w4, [fp, #0x48]
 						;; size=28 bbWeight=0.01 PerfScore 0.12
-G_M35463_IG02:        ; bbWeight=0.01, gcrefRegs=0001 {x0}, byrefRegs=0006 {x1 x2}, byref
+G_M35463_IG02:        ; bbWeight=0.01, gcrefRegs=0001 {x0}, byrefRegs=0006 {x1 x2}, byref, isz
             add     x6, x0, #16
             ; byrRegs +[x6]
             b       G_M35463_IG07
+            align   [0 bytes for IG04]
+            align   [0 bytes]
+            align   [0 bytes]
+            align   [0 bytes]
 						;; size=8 bbWeight=0.01 PerfScore 0.01
-G_M35463_IG03:        ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=0046 {x1 x2 x6}, byref, isz, align
+G_M35463_IG03:        ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=0046 {x1 x2 x6}, byref, isz
             ldr     w7, [x0, #0x08]
             cmp     w5, w7
             bhs     G_M35463_IG13
@@ -86,12 +90,7 @@ G_M35463_IG03:        ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=0046 {x1 x2 x
             ble     G_M35463_IG05
             ldr     x3, [x6, x3]
             ; gcrRegs +[x3]
-            b       G_M35463_IG04
-            align   [4 bytes for IG04]
-            align   [4 bytes]
-            align   [0 bytes]
-            align   [0 bytes]
-						;; size=92 bbWeight=2 PerfScore 68.00
+						;; size=80 bbWeight=2 PerfScore 66.00
 G_M35463_IG04:        ; bbWeight=16, gcrefRegs=0009 {x0 x3}, byrefRegs=0046 {x1 x2 x6}, loop=IG04, byref, isz
             mov     x7, x3
             ; gcrRegs +[x7]
@@ -219,7 +218,7 @@ G_M35463_IG13:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             brk_windows #0
 						;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 448, prolog size 28, PerfScore 3945.44, instruction count 118, allocated bytes for code 448 (MethodHash=109d7578) for method Benchstone.BenchF.InvMt:Inner(double[][],byref,byref) (Tier1-OSR)
+; Total bytes of code 436, prolog size 28, PerfScore 3942.24, instruction count 117, allocated bytes for code 436 (MethodHash=109d7578) for method Benchstone.BenchF.InvMt:Inner(double[][],byref,byref) (Tier1-OSR)
 ; ============================================================
 
 Unwind Info:
@@ -230,7 +229,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 112 (0x00070) Actual length = 448 (0x0001c0)
+  Function Length   : 109 (0x0006d) Actual length = 436 (0x0001b4)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-4 (-2.22%) : 46962.dasm - NumericSortRect:LoadNumArrayWithRand(int[,],int,int) (Tier1-OSR)
@@ -36,8 +36,12 @@ G_M50875_IG01:        ; bbWeight=0.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
             ldp     w2, w1, [fp, #0x40]
             ldp     w3, w4, [fp, #0x38]
 						;; size=20 bbWeight=0.01 PerfScore 0.08
-G_M50875_IG02:        ; bbWeight=0.01, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
+G_M50875_IG02:        ; bbWeight=0.01, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             b       G_M50875_IG04
+            align   [0 bytes for IG06]
+            align   [0 bytes]
+            align   [0 bytes]
+            align   [0 bytes]
 						;; size=4 bbWeight=0.01 PerfScore 0.01
 G_M50875_IG03:        ; bbWeight=2, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
             mov     w3, wzr
@@ -46,16 +50,11 @@ G_M50875_IG04:        ; bbWeight=8, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
             cmp     w3, w1
             bge     G_M50875_IG07
 						;; size=8 bbWeight=8 PerfScore 12.00
-G_M50875_IG05:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
+G_M50875_IG05:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
             ldr     w5, [x0, #0x18]
             sub     w6, w2, w5
             ldr     w7, [x0, #0x10]
-            b       G_M50875_IG06
-            align   [0 bytes for IG06]
-            align   [0 bytes]
-            align   [0 bytes]
-            align   [0 bytes]
-						;; size=16 bbWeight=4 PerfScore 30.00
+						;; size=12 bbWeight=4 PerfScore 26.00
 G_M50875_IG06:        ; bbWeight=16, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, loop=IG06, byref, isz
             sxtw    w8, w6
             cmp     w8, w7
@@ -99,7 +98,7 @@ G_M50875_IG09:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             brk_windows #0
 						;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 180, prolog size 20, PerfScore 495.59, instruction count 49, allocated bytes for code 180 (MethodHash=89573944) for method NumericSortRect:LoadNumArrayWithRand(int[,],int,int) (Tier1-OSR)
+; Total bytes of code 176, prolog size 20, PerfScore 491.19, instruction count 48, allocated bytes for code 176 (MethodHash=89573944) for method NumericSortRect:LoadNumArrayWithRand(int[,],int,int) (Tier1-OSR)
 ; ============================================================
 
 Unwind Info:
@@ -110,7 +109,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 45 (0x0002d) Actual length = 180 (0x0000b4)
+  Function Length   : 44 (0x0002c) Actual length = 176 (0x0000b0)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+0 (0.00%) : 47424.dasm - System.Collections.AddGivenSize`1[System.__Canon]:List():System.Collections.Generic.List`1[System.__Canon]:this (Tier0)

No diffs found?

+0 (0.00%) : 47440.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializerContract:get_ReadMethods():System.Collections.Hashtable:this (Tier0)

No diffs found?

+0 (0.00%) : 47456.dasm - System.Net.Security.Tests.SslStreamTests+d__38:MoveNext():this (Tier1)

No diffs found?

coreclr_tests.run.windows.arm64.checked.mch
-20 (-4.72%) : 510610.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:EnsureScopedRefAttributeExists(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder) (FullOpts)
@@ -130,11 +130,15 @@ G_M38191_IG05:        ; bbWeight=16, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefR
             cmp     w3, w1
             bne     G_M38191_IG05
 						;; size=32 bbWeight=16 PerfScore 160.00
-G_M38191_IG06:        ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=0000 {}, byref
+G_M38191_IG06:        ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=0000 {}, byref, isz
             ; byrRegs -[x0]
             b       G_M38191_IG09
+            align   [0 bytes for IG08]
+            align   [0 bytes]
+            align   [0 bytes]
+            align   [0 bytes]
 						;; size=4 bbWeight=2 PerfScore 2.00
-G_M38191_IG07:        ; bbWeight=2, gcrefRegs=5380000 {x19 x20 x21 x24 x26}, byrefRegs=0000 {}, byref, isz, align
+G_M38191_IG07:        ; bbWeight=2, gcrefRegs=5380000 {x19 x20 x21 x24 x26}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x26]
             mov     x0, x26
             ; gcrRegs +[x0]
@@ -171,12 +175,7 @@ G_M38191_IG07:        ; bbWeight=2, gcrefRegs=5380000 {x19 x20 x21 x24 x26}, byr
             beq     G_M38191_IG09
             add     x0, x20, #0xD1FFAB1E
             ; byrRegs +[x0]
-            b       G_M38191_IG08
-            align   [4 bytes for IG08]
-            align   [4 bytes]
-            align   [4 bytes]
-            align   [4 bytes]
-						;; size=124 bbWeight=2 PerfScore 57.00
+						;; size=104 bbWeight=2 PerfScore 55.00
 G_M38191_IG08:        ; bbWeight=16, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=0001 {x0}, loop=IG08, byref, isz
             ldr     w1, [x0]
             orr     w2, w1, #128
@@ -204,7 +203,7 @@ G_M38191_IG10:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ret     lr
 						;; size=24 bbWeight=1 PerfScore 6.00
 
-; Total bytes of code 424, prolog size 40, PerfScore 539.90, instruction count 108, allocated bytes for code 424 (MethodHash=350f6ad0) for method Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:EnsureScopedRefAttributeExists(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder) (FullOpts)
+; Total bytes of code 404, prolog size 40, PerfScore 535.90, instruction count 107, allocated bytes for code 404 (MethodHash=350f6ad0) for method Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:EnsureScopedRefAttributeExists(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder) (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -215,7 +214,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 106 (0x0006a) Actual length = 424 (0x0001a8)
+  Function Length   : 101 (0x00065) Actual length = 404 (0x000194)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-12 (-4.69%) : 404402.dasm - ILCompiler.ReadyToRunHashCode:NameHashCode(System.String):int (Tier1)
@@ -40,7 +40,7 @@ G_M52128_IG03:        ; bbWeight=1.00, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, b
             ldr     w2, [x1, #0x08]
             cbz     w2, G_M52128_IG05
 						;; size=8 bbWeight=1.00 PerfScore 4.00
-G_M52128_IG04:        ; bbWeight=0.95, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref
+G_M52128_IG04:        ; bbWeight=0.95, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref, isz
             movz    w19, #0xD1FFAB1E
             movk    w19, #0xD1FFAB1E LSL #16
             mov     w20, wzr
@@ -50,6 +50,10 @@ G_M52128_IG04:        ; bbWeight=0.95, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, b
             ldr     x0, [x0]
             ; gcrRegs +[x0]
             b       G_M52128_IG14
+            align   [0 bytes for IG10]
+            align   [0 bytes]
+            align   [0 bytes]
+            align   [0 bytes]
 						;; size=32 bbWeight=0.95 PerfScore 6.68
 G_M52128_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x0-x1]
@@ -76,16 +80,11 @@ G_M52128_IG08:        ; bbWeight=0.95, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, b
             cmp     w2, #0
             ble     G_M52128_IG12
 						;; size=16 bbWeight=0.95 PerfScore 4.77
-G_M52128_IG09:        ; bbWeight=0.85, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz, align
+G_M52128_IG09:        ; bbWeight=0.85, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
             add     x0, x0, #16
             ; gcrRegs -[x0]
             ; byrRegs +[x0]
-            b       G_M52128_IG10
-            align   [4 bytes for IG10]
-            align   [4 bytes]
-            align   [0 bytes]
-            align   [0 bytes]
-						;; size=16 bbWeight=0.85 PerfScore 1.28
+						;; size=4 bbWeight=0.85 PerfScore 0.43
 G_M52128_IG10:        ; bbWeight=8.18, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
             ror     w3, w19, #27
             add     w3, w19, w3
@@ -135,7 +134,7 @@ G_M52128_IG15:        ; bbWeight=0.84, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}
             b       G_M52128_IG08
 						;; size=24 bbWeight=0.84 PerfScore 5.49
 
-; Total bytes of code 256, prolog size 16, PerfScore 195.24, instruction count 66, allocated bytes for code 256 (MethodHash=12f6345f) for method ILCompiler.ReadyToRunHashCode:NameHashCode(System.String):int (Tier1)
+; Total bytes of code 244, prolog size 16, PerfScore 193.18, instruction count 65, allocated bytes for code 244 (MethodHash=12f6345f) for method ILCompiler.ReadyToRunHashCode:NameHashCode(System.String):int (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -146,7 +145,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 64 (0x00040) Actual length = 256 (0x000100)
+  Function Length   : 61 (0x0003d) Actual length = 244 (0x0000f4)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-12 (-4.69%) : 406647.dasm - ILCompiler.ReadyToRunHashCode:NameHashCode(System.String):int (Tier1)
@@ -38,7 +38,7 @@ G_M52128_IG02:        ; bbWeight=1, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byre
             ldr     w2, [x1, #0x08]
             cbz     w2, G_M52128_IG04
 						;; size=12 bbWeight=1 PerfScore 5.00
-G_M52128_IG03:        ; bbWeight=0.95, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref
+G_M52128_IG03:        ; bbWeight=0.95, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, byref, isz
             movz    w19, #0xD1FFAB1E
             movk    w19, #0xD1FFAB1E LSL #16
             mov     w20, wzr
@@ -48,6 +48,10 @@ G_M52128_IG03:        ; bbWeight=0.95, gcrefRegs=0002 {x1}, byrefRegs=0000 {}, b
             ldr     x0, [x0]
             ; gcrRegs +[x0]
             b       G_M52128_IG13
+            align   [0 bytes for IG09]
+            align   [0 bytes]
+            align   [0 bytes]
+            align   [0 bytes]
 						;; size=32 bbWeight=0.95 PerfScore 6.68
 G_M52128_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x0-x1]
@@ -74,16 +78,11 @@ G_M52128_IG07:        ; bbWeight=0.95, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, b
             cmp     w2, #0
             ble     G_M52128_IG11
 						;; size=16 bbWeight=0.95 PerfScore 4.77
-G_M52128_IG08:        ; bbWeight=0.85, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz, align
+G_M52128_IG08:        ; bbWeight=0.85, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
             add     x0, x0, #16
             ; gcrRegs -[x0]
             ; byrRegs +[x0]
-            b       G_M52128_IG09
-            align   [4 bytes for IG09]
-            align   [4 bytes]
-            align   [0 bytes]
-            align   [0 bytes]
-						;; size=16 bbWeight=0.85 PerfScore 1.28
+						;; size=4 bbWeight=0.85 PerfScore 0.43
 G_M52128_IG09:        ; bbWeight=8.07, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
             ror     w3, w19, #27
             add     w3, w19, w3
@@ -133,7 +132,7 @@ G_M52128_IG14:        ; bbWeight=0.84, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}
             b       G_M52128_IG07
 						;; size=24 bbWeight=0.84 PerfScore 5.49
 
-; Total bytes of code 256, prolog size 16, PerfScore 193.27, instruction count 66, allocated bytes for code 256 (MethodHash=12f6345f) for method ILCompiler.ReadyToRunHashCode:NameHashCode(System.String):int (Tier1)
+; Total bytes of code 244, prolog size 16, PerfScore 191.22, instruction count 65, allocated bytes for code 244 (MethodHash=12f6345f) for method ILCompiler.ReadyToRunHashCode:NameHashCode(System.String):int (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -144,7 +143,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 64 (0x00040) Actual length = 256 (0x000100)
+  Function Length   : 61 (0x0003d) Actual length = 244 (0x0000f4)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+0 (0.00%) : 615376.dasm - Tracing.Tests.Listener:get_ConsoleForegroundColorNotSupported():ubyte (FullOpts)

No diffs found?

+0 (0.00%) : 615392.dasm - Program:<$>g__TestExecutor4|0_5(System.IO.StreamWriter,System.IO.StreamWriter,byref) (FullOpts)

No diffs found?

+0 (0.00%) : 615408.dasm - Program:<$>g__TestExecutor20|0_21(System.IO.StreamWriter,System.IO.StreamWriter,byref) (FullOpts)

No diffs found?

libraries.crossgen2.windows.arm64.checked.mch
+0 (0.00%) : 1.dasm - Interop+WinHttp+SafeWinHttpHandle:ReleaseHandle():ubyte:this (FullOpts)

No diffs found?

+0 (0.00%) : 17.dasm - System.IO.DelegatingStream:Seek(long,int):long:this (FullOpts)

No diffs found?

+0 (0.00%) : 33.dasm - System.IO.DelegatingStream:WriteAsync(ubyte[],int,int,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)

No diffs found?

+0 (0.00%) : 242992.dasm - System.Net.Quic.MsQuicApi:GetParam(System.Net.Quic.MsQuicSafeHandle,uint,ulong,ulong):int:this (FullOpts)

No diffs found?

+0 (0.00%) : 243008.dasm - System.Net.Quic.QuicStream:HandleEventPeerReceiveAborted(byref):int:this (FullOpts)

No diffs found?

+0 (0.00%) : 243024.dasm - System.Net.MultiMemory:CopyFrom(System.ReadOnlySpan`1[ubyte]):this (FullOpts)

No diffs found?

libraries.pmi.windows.arm64.checked.mch
-20 (-4.72%) : 63333.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:EnsureScopedRefAttributeExists(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder) (FullOpts)
@@ -130,11 +130,15 @@ G_M38191_IG05:        ; bbWeight=16, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefR
             cmp     w3, w1
             bne     G_M38191_IG05
 						;; size=32 bbWeight=16 PerfScore 160.00
-G_M38191_IG06:        ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=0000 {}, byref
+G_M38191_IG06:        ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=0000 {}, byref, isz
             ; byrRegs -[x0]
             b       G_M38191_IG09
+            align   [0 bytes for IG08]
+            align   [0 bytes]
+            align   [0 bytes]
+            align   [0 bytes]
 						;; size=4 bbWeight=2 PerfScore 2.00
-G_M38191_IG07:        ; bbWeight=2, gcrefRegs=5380000 {x19 x20 x21 x24 x26}, byrefRegs=0000 {}, byref, isz, align
+G_M38191_IG07:        ; bbWeight=2, gcrefRegs=5380000 {x19 x20 x21 x24 x26}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x26]
             mov     x0, x26
             ; gcrRegs +[x0]
@@ -171,12 +175,7 @@ G_M38191_IG07:        ; bbWeight=2, gcrefRegs=5380000 {x19 x20 x21 x24 x26}, byr
             beq     G_M38191_IG09
             add     x0, x20, #0xD1FFAB1E
             ; byrRegs +[x0]
-            b       G_M38191_IG08
-            align   [4 bytes for IG08]
-            align   [4 bytes]
-            align   [4 bytes]
-            align   [4 bytes]
-						;; size=124 bbWeight=2 PerfScore 57.00
+						;; size=104 bbWeight=2 PerfScore 55.00
 G_M38191_IG08:        ; bbWeight=16, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=0001 {x0}, loop=IG08, byref, isz
             ldr     w1, [x0]
             orr     w2, w1, #128
@@ -204,7 +203,7 @@ G_M38191_IG10:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ret     lr
 						;; size=24 bbWeight=1 PerfScore 6.00
 
-; Total bytes of code 424, prolog size 40, PerfScore 539.90, instruction count 108, allocated bytes for code 424 (MethodHash=350f6ad0) for method Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:EnsureScopedRefAttributeExists(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder) (FullOpts)
+; Total bytes of code 404, prolog size 40, PerfScore 535.90, instruction count 107, allocated bytes for code 404 (MethodHash=350f6ad0) for method Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:EnsureScopedRefAttributeExists(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder) (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -215,7 +214,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 106 (0x0006a) Actual length = 424 (0x0001a8)
+  Function Length   : 101 (0x00065) Actual length = 404 (0x000194)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-4.72%) : 63324.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:EnsureIsReadOnlyAttributeExists(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder) (FullOpts)
@@ -130,11 +130,15 @@ G_M11692_IG05:        ; bbWeight=16, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefR
             cmp     w3, w1
             bne     G_M11692_IG05
 						;; size=32 bbWeight=16 PerfScore 160.00
-G_M11692_IG06:        ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=0000 {}, byref
+G_M11692_IG06:        ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=0000 {}, byref, isz
             ; byrRegs -[x0]
             b       G_M11692_IG09
+            align   [0 bytes for IG08]
+            align   [0 bytes]
+            align   [0 bytes]
+            align   [0 bytes]
 						;; size=4 bbWeight=2 PerfScore 2.00
-G_M11692_IG07:        ; bbWeight=2, gcrefRegs=5380000 {x19 x20 x21 x24 x26}, byrefRegs=0000 {}, byref, isz, align
+G_M11692_IG07:        ; bbWeight=2, gcrefRegs=5380000 {x19 x20 x21 x24 x26}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x26]
             mov     x0, x26
             ; gcrRegs +[x0]
@@ -171,12 +175,7 @@ G_M11692_IG07:        ; bbWeight=2, gcrefRegs=5380000 {x19 x20 x21 x24 x26}, byr
             beq     G_M11692_IG09
             add     x0, x20, #0xD1FFAB1E
             ; byrRegs +[x0]
-            b       G_M11692_IG08
-            align   [4 bytes for IG08]
-            align   [4 bytes]
-            align   [4 bytes]
-            align   [4 bytes]
-						;; size=124 bbWeight=2 PerfScore 57.00
+						;; size=104 bbWeight=2 PerfScore 55.00
 G_M11692_IG08:        ; bbWeight=16, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=0001 {x0}, loop=IG08, byref, isz
             ldr     w1, [x0]
             orr     w2, w1, #1
@@ -204,7 +203,7 @@ G_M11692_IG10:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ret     lr
 						;; size=24 bbWeight=1 PerfScore 6.00
 
-; Total bytes of code 424, prolog size 40, PerfScore 559.90, instruction count 108, allocated bytes for code 424 (MethodHash=3f92d253) for method Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:EnsureIsReadOnlyAttributeExists(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder) (FullOpts)
+; Total bytes of code 404, prolog size 40, PerfScore 555.90, instruction count 107, allocated bytes for code 404 (MethodHash=3f92d253) for method Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:EnsureIsReadOnlyAttributeExists(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder) (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -215,7 +214,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 106 (0x0006a) Actual length = 424 (0x0001a8)
+  Function Length   : 101 (0x00065) Actual length = 404 (0x000194)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-4 (-4.17%) : 14155.dasm - System.Diagnostics.Tracing.DataCollector:EnsureBuffer():this (FullOpts)
@@ -35,17 +35,16 @@ G_M12175_IG03:        ; bbWeight=0.50, gcrefRegs=0004 {x2}, byrefRegs=0001 {x0},
             ldr     w2, [x2, #0x08]
             ; gcrRegs -[x2]
             b       G_M12175_IG05
-						;; size=20 bbWeight=0.50 PerfScore 4.25
-G_M12175_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref
-            mov     w2, #64
-						;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M12175_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref, isz
-            b       G_M12175_IG06
             align   [0 bytes for IG06]
             align   [0 bytes]
             align   [0 bytes]
             align   [0 bytes]
-						;; size=4 bbWeight=0.50 PerfScore 0.50
+						;; size=20 bbWeight=0.50 PerfScore 4.25
+G_M12175_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref
+            mov     w2, #64
+						;; size=4 bbWeight=0.50 PerfScore 0.25
+G_M12175_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byref
+						;; size=0 bbWeight=0.50 PerfScore 0.00
 G_M12175_IG06:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, loop=IG06, byref, isz
             lsl     w2, w2, #1
             cmp     w2, w1
@@ -69,7 +68,7 @@ G_M12175_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
             ret     lr
 						;; size=8 bbWeight=0.50 PerfScore 1.00
 
-; Total bytes of code 96, prolog size 8, PerfScore 37.60, instruction count 28, allocated bytes for code 96 (MethodHash=d087d070) for method System.Diagnostics.Tracing.DataCollector:EnsureBuffer():this (FullOpts)
+; Total bytes of code 92, prolog size 8, PerfScore 36.70, instruction count 27, allocated bytes for code 92 (MethodHash=d087d070) for method System.Diagnostics.Tracing.DataCollector:EnsureBuffer():this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -80,7 +79,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 24 (0x00018) Actual length = 96 (0x000060)
+  Function Length   : 23 (0x00017) Actual length = 92 (0x00005c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+0 (0.00%) : 303216.dasm - Xunit.TestMessageVisitor+<>c:b__2_31(Xunit.TestMessageVisitor,Xunit.Abstractions.ITestFailed):ubyte:this (FullOpts)

No diffs found?

+0 (0.00%) : 303232.dasm - Xunit.SerializationHelper+<>c:b__2_0(System.String):System.String:this (FullOpts)

No diffs found?

+0 (0.00%) : 303248.dasm - Xunit.Runners.AssemblyRunner+<>c__DisplayClass63_0:b__0():this (FullOpts)

No diffs found?

libraries_tests.run.windows.arm64.Release.mch
-20 (-2.86%) : 553069.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex1043_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
@@ -141,6 +141,10 @@ G_M34321_IG04:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=100000 {
             blr     x1
             ; gcr arg pop 0
             b       G_M34321_IG06
+            align   [0 bytes for IG07]
+            align   [0 bytes]
+            align   [0 bytes]
+            align   [0 bytes]
 						;; size=60 bbWeight=0.50 PerfScore 6.00
 G_M34321_IG05:        ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref, isz
             ; byrRegs -[x24]
@@ -178,15 +182,10 @@ G_M34321_IG05:        ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20
             blr     x1
             ; gcr arg pop 0
 						;; size=120 bbWeight=2 PerfScore 53.00
-G_M34321_IG06:        ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=1100000 {x20 x24}, byref, align
+G_M34321_IG06:        ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=1100000 {x20 x24}, byref
             sxtw    w26, w23
             mov     w1, wzr
-            b       G_M34321_IG07
-            align   [4 bytes for IG07]
-            align   [4 bytes]
-            align   [4 bytes]
-            align   [4 bytes]
-						;; size=28 bbWeight=4 PerfScore 8.00
+						;; size=8 bbWeight=4 PerfScore 4.00
 G_M34321_IG07:        ; bbWeight=16, gcrefRegs=80000 {x19}, byrefRegs=1100000 {x20 x24}, loop=IG07, byref, isz
             cmp     w1, w25
             bhs     G_M34321_IG08
@@ -318,7 +317,7 @@ G_M34321_IG18:        ; bbWeight=0, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
             b       G_M34321_IG11
 						;; size=28 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 700, prolog size 28, PerfScore 332.39, instruction count 175, allocated bytes for code 700 (MethodHash=730379ee) for method System.Text.RegularExpressions.CompiledRegexRunner:Regex1043_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
+; Total bytes of code 680, prolog size 28, PerfScore 326.39, instruction count 174, allocated bytes for code 680 (MethodHash=730379ee) for method System.Text.RegularExpressions.CompiledRegexRunner:Regex1043_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -329,7 +328,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 175 (0x000af) Actual length = 700 (0x0002bc)
+  Function Length   : 170 (0x000aa) Actual length = 680 (0x0002a8)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-1.93%) : 90546.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:ForceComplete(Microsoft.CodeAnalysis.SourceLocation,System.Threading.CancellationToken):this (Tier1)
@@ -338,7 +338,7 @@ G_M28841_IG29:        ; bbWeight=659.13, gcrefRegs=1980000 {x19 x20 x23 x24}, by
             ; gcrRegs +[x14]
             cbnz    x14, G_M28841_IG35
 						;; size=8 bbWeight=659.13 PerfScore 2636.54
-G_M28841_IG30:        ; bbWeight=540.25, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRegs=200000 {x21}, byref, isz
+G_M28841_IG30:        ; bbWeight=540.25, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRegs=200000 {x21}, byref
             ; gcrRegs -[x14]
             add     x14, x24, #8
             ; byrRegs +[x14]
@@ -348,15 +348,15 @@ G_M28841_IG30:        ; bbWeight=540.25, gcrefRegs=1980000 {x19 x20 x23 x24}, by
             ; gcrRegs -[x15 x23-x24]
             ; byrRegs -[x14]
             b       G_M28841_IG41
+						;; size=16 bbWeight=540.25 PerfScore 1620.74
+G_M28841_IG31:        ; bbWeight=16.38, gcrefRegs=1980001 {x0 x19 x20 x23 x24}, byrefRegs=200000 {x21}, byref, isz
+            ; gcrRegs +[x0 x23-x24]
+            str     xzr, [x0, #0x08]
+            b       G_M28841_IG27
             align   [0 bytes for IG33]
             align   [0 bytes]
             align   [0 bytes]
             align   [0 bytes]
-						;; size=16 bbWeight=540.25 PerfScore 1620.74
-G_M28841_IG31:        ; bbWeight=16.38, gcrefRegs=1980001 {x0 x19 x20 x23 x24}, byrefRegs=200000 {x21}, byref
-            ; gcrRegs +[x0 x23-x24]
-            str     xzr, [x0, #0x08]
-            b       G_M28841_IG27
 						;; size=8 bbWeight=16.38 PerfScore 32.76
 G_M28841_IG32:        ; bbWeight=668.25, gcrefRegs=180000 {x19 x20}, byrefRegs=200000 {x21}, byref
             ; gcrRegs -[x0 x23-x24]
@@ -374,7 +374,7 @@ G_M28841_IG33:        ; bbWeight=668.25, gcrefRegs=180000 {x19 x20}, byrefRegs=2
 G_M28841_IG34:        ; bbWeight=647.55, gcrefRegs=180000 {x19 x20}, byrefRegs=200008 {x3 x21}, byref
             b       G_M28841_IG40
 						;; size=4 bbWeight=647.55 PerfScore 647.55
-G_M28841_IG35:        ; bbWeight=659.13, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRegs=200000 {x21}, byref
+G_M28841_IG35:        ; bbWeight=659.13, gcrefRegs=1980000 {x19 x20 x23 x24}, byrefRegs=200000 {x21}, byref, isz
             ; gcrRegs +[x23-x24]
             ; byrRegs -[x3]
             mov     x0, x24
@@ -389,6 +389,10 @@ G_M28841_IG35:        ; bbWeight=659.13, gcrefRegs=1980000 {x19 x20 x23 x24}, by
             ; gcrRegs -[x0-x1 x23-x24]
             ; gcr arg pop 0
             b       G_M28841_IG41
+            align   [0 bytes for IG48]
+            align   [0 bytes]
+            align   [0 bytes]
+            align   [0 bytes]
 						;; size=32 bbWeight=659.13 PerfScore 4943.51
 G_M28841_IG36:        ; bbWeight=668.25, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=200000 {x21}, byref
             ; gcrRegs +[x23]
@@ -483,7 +487,7 @@ G_M28841_IG46:        ; bbWeight=647.55, gcrefRegs=180000 {x19 x20}, byrefRegs=2
             cmp     w0, w26
             bne     G_M28841_IG15
 						;; size=16 bbWeight=647.55 PerfScore 3237.75
-G_M28841_IG47:        ; bbWeight=2673, gcrefRegs=180000 {x19 x20}, byrefRegs=200000 {x21}, byref, align
+G_M28841_IG47:        ; bbWeight=2673, gcrefRegs=180000 {x19 x20}, byrefRegs=200000 {x21}, byref
             ; byrRegs -[x2]
             mov     x0, x19
             ; gcrRegs +[x0]
@@ -496,12 +500,7 @@ G_M28841_IG47:        ; bbWeight=2673, gcrefRegs=180000 {x19 x20}, byrefRegs=200
             ; gcr arg pop 0
             mov     x0, x21
             ; byrRegs +[x0]
-            b       G_M28841_IG48
-            align   [4 bytes for IG48]
-            align   [4 bytes]
-            align   [4 bytes]
-            align   [4 bytes]
-						;; size=48 bbWeight=2673 PerfScore 20047.50
+						;; size=28 bbWeight=2673 PerfScore 17374.50
 G_M28841_IG48:        ; bbWeight=668.25, gcrefRegs=180000 {x19 x20}, byrefRegs=200001 {x0 x21}, byref, isz
             ldr     w1, [x0]
             orr     w2, w1, #0xD1FFAB1E
@@ -551,7 +550,7 @@ G_M28841_IG53:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             brk_windows #0
 						;; size=28 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1036, prolog size 44, PerfScore 330286.19, instruction count 277, allocated bytes for code 1036 (MethodHash=abee8f56) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:ForceComplete(Microsoft.CodeAnalysis.SourceLocation,System.Threading.CancellationToken):this (Tier1)
+; Total bytes of code 1016, prolog size 44, PerfScore 327611.19, instruction count 276, allocated bytes for code 1016 (MethodHash=abee8f56) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:ForceComplete(Microsoft.CodeAnalysis.SourceLocation,System.Threading.CancellationToken):this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -562,7 +561,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 259 (0x00103) Actual length = 1036 (0x00040c)
+  Function Length   : 254 (0x000fe) Actual length = 1016 (0x0003f8)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-1.93%) : 320077.dasm - System.SpanTests.SpanTests:TestMultipleMatchLastIndexOfAny_Byte_ManyByte() (Tier1-OSR)
@@ -204,8 +204,12 @@ G_M23873_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ; gcrRegs +[x2]
             ldr     w1, [fp, #0xA8]
 						;; size=40 bbWeight=1 PerfScore 12.50
-G_M23873_IG02:        ; bbWeight=1, gcrefRegs=0004 {x2}, byrefRegs=0000 {}, byref
+G_M23873_IG02:        ; bbWeight=1, gcrefRegs=0004 {x2}, byrefRegs=0000 {}, byref, isz
             b       G_M23873_IG04
+            align   [0 bytes for IG06]
+            align   [0 bytes]
+            align   [0 bytes]
+            align   [0 bytes]
 						;; size=4 bbWeight=1 PerfScore 1.00
 G_M23873_IG03:        ; bbWeight=1.39, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x2]
@@ -225,7 +229,7 @@ G_M23873_IG04:        ; bbWeight=1.39, gcrefRegs=0004 {x2}, byrefRegs=0000 {}, b
             cmp     w1, w19
             bge     G_M23873_IG11
 						;; size=8 bbWeight=1.39 PerfScore 2.08
-G_M23873_IG05:        ; bbWeight=1.37, gcrefRegs=0004 {x2}, byrefRegs=0000 {}, byref, isz, align
+G_M23873_IG05:        ; bbWeight=1.37, gcrefRegs=0004 {x2}, byrefRegs=0000 {}, byref, isz
             cbz     x2, G_M23873_IG09
             orr     w0, w1, w19
             tbnz    w0, #31, G_M23873_IG09
@@ -234,12 +238,7 @@ G_M23873_IG05:        ; bbWeight=1.37, gcrefRegs=0004 {x2}, byrefRegs=0000 {}, b
             blt     G_M23873_IG09
             add     x21, x2, #16
             ; byrRegs +[x21]
-            b       G_M23873_IG06
-            align   [4 bytes for IG06]
-            align   [4 bytes]
-            align   [4 bytes]
-            align   [4 bytes]
-						;; size=48 bbWeight=1.37 PerfScore 11.63
+						;; size=28 bbWeight=1.37 PerfScore 10.26
 G_M23873_IG06:        ; bbWeight=97.63, gcrefRegs=0004 {x2}, byrefRegs=200000 {x21}, byref, isz
             add     w22, w1, #1
             uxtb    w3, w22
@@ -598,7 +597,7 @@ G_M23873_IG18:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             brk_windows #0
 						;; size=28 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1036, prolog size 40, PerfScore 883.39, instruction count 259, allocated bytes for code 1036 (MethodHash=4405a2be) for method System.SpanTests.SpanTests:TestMultipleMatchLastIndexOfAny_Byte_ManyByte() (Tier1-OSR)
+; Total bytes of code 1016, prolog size 40, PerfScore 880.03, instruction count 258, allocated bytes for code 1016 (MethodHash=4405a2be) for method System.SpanTests.SpanTests:TestMultipleMatchLastIndexOfAny_Byte_ManyByte() (Tier1-OSR)
 ; ============================================================
 
 Unwind Info:
@@ -609,7 +608,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 259 (0x00103) Actual length = 1036 (0x00040c)
+  Function Length   : 254 (0x000fe) Actual length = 1016 (0x0003f8)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+0 (0.00%) : 617488.dasm - XmlSerializerTests:Xml_ImmutableCollections(System.Type,System.Object,System.Type,System.Type,System.String,System.String) (Tier0)

No diffs found?

+0 (0.00%) : 617504.dasm - XmlSerializerTests:Xml_TypeWithPropertiesHavingDefaultValue_DefaultValue() (Tier0)

No diffs found?

+0 (0.00%) : 617520.dasm - XmlSerializerTests+<>c:b__231_2():System.Object:this (Tier0)

No diffs found?

libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch
-20 (-4.72%) : 7722.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:EnsureScopedRefAttributeExists(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder) (FullOpts)
@@ -130,11 +130,15 @@ G_M38191_IG05:        ; bbWeight=16, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefR
             cmp     w3, w1
             bne     G_M38191_IG05
 						;; size=32 bbWeight=16 PerfScore 160.00
-G_M38191_IG06:        ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=0000 {}, byref
+G_M38191_IG06:        ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=0000 {}, byref, isz
             ; byrRegs -[x0]
             b       G_M38191_IG09
+            align   [0 bytes for IG08]
+            align   [0 bytes]
+            align   [0 bytes]
+            align   [0 bytes]
 						;; size=4 bbWeight=2 PerfScore 2.00
-G_M38191_IG07:        ; bbWeight=2, gcrefRegs=5380000 {x19 x20 x21 x24 x26}, byrefRegs=0000 {}, byref, isz, align
+G_M38191_IG07:        ; bbWeight=2, gcrefRegs=5380000 {x19 x20 x21 x24 x26}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x26]
             mov     x0, x26
             ; gcrRegs +[x0]
@@ -171,12 +175,7 @@ G_M38191_IG07:        ; bbWeight=2, gcrefRegs=5380000 {x19 x20 x21 x24 x26}, byr
             beq     G_M38191_IG09
             add     x0, x20, #0xD1FFAB1E
             ; byrRegs +[x0]
-            b       G_M38191_IG08
-            align   [4 bytes for IG08]
-            align   [4 bytes]
-            align   [4 bytes]
-            align   [4 bytes]
-						;; size=124 bbWeight=2 PerfScore 57.00
+						;; size=104 bbWeight=2 PerfScore 55.00
 G_M38191_IG08:        ; bbWeight=16, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=0001 {x0}, loop=IG08, byref, isz
             ldr     w1, [x0]
             orr     w2, w1, #128
@@ -204,7 +203,7 @@ G_M38191_IG10:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ret     lr
 						;; size=24 bbWeight=1 PerfScore 6.00
 
-; Total bytes of code 424, prolog size 40, PerfScore 539.90, instruction count 108, allocated bytes for code 424 (MethodHash=350f6ad0) for method Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:EnsureScopedRefAttributeExists(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder) (FullOpts)
+; Total bytes of code 404, prolog size 40, PerfScore 535.90, instruction count 107, allocated bytes for code 404 (MethodHash=350f6ad0) for method Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:EnsureScopedRefAttributeExists(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder) (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -215,7 +214,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 106 (0x0006a) Actual length = 424 (0x0001a8)
+  Function Length   : 101 (0x00065) Actual length = 404 (0x000194)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-24 (-4.29%) : 16196.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceEnumConstantSymbol:ForceComplete(Microsoft.CodeAnalysis.SourceLocation,System.Threading.CancellationToken):this (FullOpts)
@@ -154,19 +154,18 @@ G_M13434_IG10:        ; bbWeight=16, gcrefRegs=80000 {x19}, byrefRegs=100001 {x0
             cmp     w3, w1
             bne     G_M13434_IG10
 						;; size=32 bbWeight=16 PerfScore 160.00
-G_M13434_IG11:        ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref
+G_M13434_IG11:        ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref, isz
             ; byrRegs -[x0]
             b       G_M13434_IG18
-						;; size=4 bbWeight=2 PerfScore 2.00
-G_M13434_IG12:        ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref, isz
-            mov     x0, x20
-            ; byrRegs +[x0]
-            b       G_M13434_IG13
             align   [0 bytes for IG13]
             align   [0 bytes]
             align   [0 bytes]
             align   [0 bytes]
-						;; size=8 bbWeight=2 PerfScore 3.00
+						;; size=4 bbWeight=2 PerfScore 2.00
+G_M13434_IG12:        ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref
+            mov     x0, x20
+            ; byrRegs +[x0]
+						;; size=4 bbWeight=2 PerfScore 1.00
 G_M13434_IG13:        ; bbWeight=16, gcrefRegs=80000 {x19}, byrefRegs=100001 {x0 x20}, loop=IG13, byref, isz
             ldr     w1, [x0]
             orr     w2, w1, #0xD1FFAB1E
@@ -177,9 +176,13 @@ G_M13434_IG13:        ; bbWeight=16, gcrefRegs=80000 {x19}, byrefRegs=100001 {x0
             cmp     w3, w1
             bne     G_M13434_IG13
 						;; size=32 bbWeight=16 PerfScore 160.00
-G_M13434_IG14:        ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref
+G_M13434_IG14:        ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref, isz
             ; byrRegs -[x0]
             b       G_M13434_IG18
+            align   [0 bytes for IG17]
+            align   [0 bytes]
+            align   [0 bytes]
+            align   [0 bytes]
 						;; size=4 bbWeight=2 PerfScore 2.00
 G_M13434_IG15:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ; gcrRegs -[x19]
@@ -189,19 +192,14 @@ G_M13434_IG15:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ldp     fp, lr, [sp], #0x40
             ret     lr
 						;; size=16 bbWeight=1 PerfScore 5.00
-G_M13434_IG16:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, gcvars, byref, align
+G_M13434_IG16:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, gcvars, byref
             ; gcrRegs +[x19]
             ; byrRegs +[x20]
             mov     x0, x20
             ; byrRegs +[x0]
             movz    w1, #0xD1FFAB1E
             movk    w1, #3 LSL #16
-            b       G_M13434_IG17
-            align   [4 bytes for IG17]
-            align   [4 bytes]
-            align   [4 bytes]
-            align   [4 bytes]
-						;; size=32 bbWeight=2 PerfScore 5.00
+						;; size=12 bbWeight=2 PerfScore 3.00
 G_M13434_IG17:        ; bbWeight=16, gcrefRegs=80000 {x19}, byrefRegs=100001 {x0 x20}, loop=IG17, byref, isz
             ldr     w2, [x0]
             orr     w3, w2, w1
@@ -287,7 +285,7 @@ G_M13434_IG24:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             brk_windows #0
 						;; size=28 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 560, prolog size 28, PerfScore 1291.32, instruction count 144, allocated bytes for code 560 (MethodHash=01c5cb85) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceEnumConstantSymbol:ForceComplete(Microsoft.CodeAnalysis.SourceLocation,System.Threading.CancellationToken):this (FullOpts)
+; Total bytes of code 536, prolog size 28, PerfScore 1284.92, instruction count 142, allocated bytes for code 536 (MethodHash=01c5cb85) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceEnumConstantSymbol:ForceComplete(Microsoft.CodeAnalysis.SourceLocation,System.Threading.CancellationToken):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -298,7 +296,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 140 (0x0008c) Actual length = 560 (0x000230)
+  Function Length   : 134 (0x00086) Actual length = 536 (0x000218)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-4.10%) : 299335.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:EnsureNativeIntegerAttributeExists(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder) (FullOpts)
@@ -178,11 +178,15 @@ G_M16919_IG08:        ; bbWeight=16, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefR
             cmp     w3, w1
             bne     G_M16919_IG08
 						;; size=32 bbWeight=16 PerfScore 160.00
-G_M16919_IG09:        ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=0000 {}, byref
+G_M16919_IG09:        ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=0000 {}, byref, isz
             ; byrRegs -[x0]
             b       G_M16919_IG12
+            align   [0 bytes for IG11]
+            align   [0 bytes]
+            align   [0 bytes]
+            align   [0 bytes]
 						;; size=4 bbWeight=2 PerfScore 2.00
-G_M16919_IG10:        ; bbWeight=2, gcrefRegs=5380000 {x19 x20 x21 x24 x26}, byrefRegs=0000 {}, byref, isz, align
+G_M16919_IG10:        ; bbWeight=2, gcrefRegs=5380000 {x19 x20 x21 x24 x26}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x26]
             mov     x0, x26
             ; gcrRegs +[x0]
@@ -219,12 +223,7 @@ G_M16919_IG10:        ; bbWeight=2, gcrefRegs=5380000 {x19 x20 x21 x24 x26}, byr
             beq     G_M16919_IG12
             add     x0, x20, #0xD1FFAB1E
             ; byrRegs +[x0]
-            b       G_M16919_IG11
-            align   [4 bytes for IG11]
-            align   [4 bytes]
-            align   [4 bytes]
-            align   [4 bytes]
-						;; size=124 bbWeight=2 PerfScore 57.00
+						;; size=104 bbWeight=2 PerfScore 55.00
 G_M16919_IG11:        ; bbWeight=16, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=0001 {x0}, loop=IG11, byref, isz
             ldr     w1, [x0]
             orr     w2, w1, #64
@@ -252,7 +251,7 @@ G_M16919_IG13:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ret     lr
 						;; size=24 bbWeight=1 PerfScore 6.00
 
-; Total bytes of code 488, prolog size 48, PerfScore 624.30, instruction count 125, allocated bytes for code 488 (MethodHash=fb0abde8) for method Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:EnsureNativeIntegerAttributeExists(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder) (FullOpts)
+; Total bytes of code 468, prolog size 48, PerfScore 620.30, instruction count 124, allocated bytes for code 468 (MethodHash=fb0abde8) for method Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:EnsureNativeIntegerAttributeExists(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder) (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -263,7 +262,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 122 (0x0007a) Actual length = 488 (0x0001e8)
+  Function Length   : 117 (0x00075) Actual length = 468 (0x0001d4)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+0 (0.00%) : 315312.dasm - XmlSerializerTests+d__9:MoveNext():ubyte:this (FullOpts)

No diffs found?

+0 (0.00%) : 315328.dasm - XmlSerializerTests:XmlSchemaExporter_ExportMembersMapping_NotSupportedDefaultValue() (FullOpts)

No diffs found?

+0 (0.00%) : 315360.dasm - XmlSerializerTests+<>c__DisplayClass202_0:b__1():System.Xml.Serialization.XmlSerializer:this (FullOpts)

No diffs found?

realworld.run.windows.arm64.checked.mch
-20 (-4.72%) : 20356.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:EnsureIsReadOnlyAttributeExists(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder) (FullOpts)
@@ -130,11 +130,15 @@ G_M11692_IG05:        ; bbWeight=16, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefR
             cmp     w3, w1
             bne     G_M11692_IG05
 						;; size=32 bbWeight=16 PerfScore 160.00
-G_M11692_IG06:        ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=0000 {}, byref
+G_M11692_IG06:        ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=0000 {}, byref, isz
             ; byrRegs -[x0]
             b       G_M11692_IG09
+            align   [0 bytes for IG08]
+            align   [0 bytes]
+            align   [0 bytes]
+            align   [0 bytes]
 						;; size=4 bbWeight=2 PerfScore 2.00
-G_M11692_IG07:        ; bbWeight=2, gcrefRegs=5380000 {x19 x20 x21 x24 x26}, byrefRegs=0000 {}, byref, isz, align
+G_M11692_IG07:        ; bbWeight=2, gcrefRegs=5380000 {x19 x20 x21 x24 x26}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x26]
             mov     x0, x26
             ; gcrRegs +[x0]
@@ -171,12 +175,7 @@ G_M11692_IG07:        ; bbWeight=2, gcrefRegs=5380000 {x19 x20 x21 x24 x26}, byr
             beq     G_M11692_IG09
             add     x0, x20, #0xD1FFAB1E
             ; byrRegs +[x0]
-            b       G_M11692_IG08
-            align   [4 bytes for IG08]
-            align   [4 bytes]
-            align   [4 bytes]
-            align   [4 bytes]
-						;; size=124 bbWeight=2 PerfScore 57.00
+						;; size=104 bbWeight=2 PerfScore 55.00
 G_M11692_IG08:        ; bbWeight=16, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=0001 {x0}, loop=IG08, byref, isz
             ldr     w1, [x0]
             orr     w2, w1, #1
@@ -204,7 +203,7 @@ G_M11692_IG10:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ret     lr
 						;; size=24 bbWeight=1 PerfScore 6.00
 
-; Total bytes of code 424, prolog size 40, PerfScore 559.90, instruction count 108, allocated bytes for code 424 (MethodHash=3f92d253) for method Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:EnsureIsReadOnlyAttributeExists(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder) (FullOpts)
+; Total bytes of code 404, prolog size 40, PerfScore 555.90, instruction count 107, allocated bytes for code 404 (MethodHash=3f92d253) for method Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:EnsureIsReadOnlyAttributeExists(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder) (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -215,7 +214,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 106 (0x0006a) Actual length = 424 (0x0001a8)
+  Function Length   : 101 (0x00065) Actual length = 404 (0x000194)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-20 (-4.72%) : 20151.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:EnsureScopedRefAttributeExists(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder) (FullOpts)
@@ -130,11 +130,15 @@ G_M38191_IG05:        ; bbWeight=16, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefR
             cmp     w3, w1
             bne     G_M38191_IG05
 						;; size=32 bbWeight=16 PerfScore 160.00
-G_M38191_IG06:        ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=0000 {}, byref
+G_M38191_IG06:        ; bbWeight=2, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=0000 {}, byref, isz
             ; byrRegs -[x0]
             b       G_M38191_IG09
+            align   [0 bytes for IG08]
+            align   [0 bytes]
+            align   [0 bytes]
+            align   [0 bytes]
 						;; size=4 bbWeight=2 PerfScore 2.00
-G_M38191_IG07:        ; bbWeight=2, gcrefRegs=5380000 {x19 x20 x21 x24 x26}, byrefRegs=0000 {}, byref, isz, align
+G_M38191_IG07:        ; bbWeight=2, gcrefRegs=5380000 {x19 x20 x21 x24 x26}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x26]
             mov     x0, x26
             ; gcrRegs +[x0]
@@ -171,12 +175,7 @@ G_M38191_IG07:        ; bbWeight=2, gcrefRegs=5380000 {x19 x20 x21 x24 x26}, byr
             beq     G_M38191_IG09
             add     x0, x20, #0xD1FFAB1E
             ; byrRegs +[x0]
-            b       G_M38191_IG08
-            align   [4 bytes for IG08]
-            align   [4 bytes]
-            align   [4 bytes]
-            align   [4 bytes]
-						;; size=124 bbWeight=2 PerfScore 57.00
+						;; size=104 bbWeight=2 PerfScore 55.00
 G_M38191_IG08:        ; bbWeight=16, gcrefRegs=1380000 {x19 x20 x21 x24}, byrefRegs=0001 {x0}, loop=IG08, byref, isz
             ldr     w1, [x0]
             orr     w2, w1, #128
@@ -204,7 +203,7 @@ G_M38191_IG10:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ret     lr
 						;; size=24 bbWeight=1 PerfScore 6.00
 
-; Total bytes of code 424, prolog size 40, PerfScore 539.90, instruction count 108, allocated bytes for code 424 (MethodHash=350f6ad0) for method Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:EnsureScopedRefAttributeExists(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder) (FullOpts)
+; Total bytes of code 404, prolog size 40, PerfScore 535.90, instruction count 107, allocated bytes for code 404 (MethodHash=350f6ad0) for method Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:EnsureScopedRefAttributeExists(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder) (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -215,7 +214,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 106 (0x0006a) Actual length = 424 (0x0001a8)
+  Function Length   : 101 (0x00065) Actual length = 404 (0x000194)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-24 (-4.44%) : 20763.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceEnumConstantSymbol:ForceComplete(Microsoft.CodeAnalysis.SourceLocation,System.Threading.CancellationToken):this (FullOpts)
@@ -197,19 +197,18 @@ G_M13434_IG14:        ; bbWeight=16, gcrefRegs=80000 {x19}, byrefRegs=100001 {x0
             cmp     w3, w1
             bne     G_M13434_IG14
 						;; size=32 bbWeight=16 PerfScore 160.00
-G_M13434_IG15:        ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref
+G_M13434_IG15:        ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref, isz
             ; byrRegs -[x0]
             b       G_M13434_IG07
-						;; size=4 bbWeight=2 PerfScore 2.00
-G_M13434_IG16:        ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref, isz
-            mov     x0, x20
-            ; byrRegs +[x0]
-            b       G_M13434_IG17
             align   [0 bytes for IG17]
             align   [0 bytes]
             align   [0 bytes]
             align   [0 bytes]
-						;; size=8 bbWeight=2 PerfScore 3.00
+						;; size=4 bbWeight=2 PerfScore 2.00
+G_M13434_IG16:        ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref
+            mov     x0, x20
+            ; byrRegs +[x0]
+						;; size=4 bbWeight=2 PerfScore 1.00
 G_M13434_IG17:        ; bbWeight=16, gcrefRegs=80000 {x19}, byrefRegs=100001 {x0 x20}, loop=IG17, byref, isz
             ldr     w1, [x0]
             orr     w2, w1, #0xD1FFAB1E
@@ -220,9 +219,13 @@ G_M13434_IG17:        ; bbWeight=16, gcrefRegs=80000 {x19}, byrefRegs=100001 {x0
             cmp     w3, w1
             bne     G_M13434_IG17
 						;; size=32 bbWeight=16 PerfScore 160.00
-G_M13434_IG18:        ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref
+G_M13434_IG18:        ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, byref, isz
             ; byrRegs -[x0]
             b       G_M13434_IG07
+            align   [0 bytes for IG21]
+            align   [0 bytes]
+            align   [0 bytes]
+            align   [0 bytes]
 						;; size=4 bbWeight=2 PerfScore 2.00
 G_M13434_IG19:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
             ; gcrRegs -[x19]
@@ -232,19 +235,14 @@ G_M13434_IG19:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ldp     fp, lr, [sp], #0x40
             ret     lr
 						;; size=16 bbWeight=1 PerfScore 5.00
-G_M13434_IG20:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, gcvars, byref, align
+G_M13434_IG20:        ; bbWeight=2, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=100000 {x20}, gcvars, byref
             ; gcrRegs +[x19]
             ; byrRegs +[x20]
             mov     x0, x20
             ; byrRegs +[x0]
             movz    w1, #0xD1FFAB1E
             movk    w1, #3 LSL #16
-            b       G_M13434_IG21
-            align   [4 bytes for IG21]
-            align   [4 bytes]
-            align   [4 bytes]
-            align   [4 bytes]
-						;; size=32 bbWeight=2 PerfScore 5.00
+						;; size=12 bbWeight=2 PerfScore 3.00
 G_M13434_IG21:        ; bbWeight=16, gcrefRegs=80000 {x19}, byrefRegs=100001 {x0 x20}, loop=IG21, byref, isz
             ldr     w2, [x0]
             orr     w3, w2, w1
@@ -282,7 +280,7 @@ G_M13434_IG24:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             brk_windows #0
 						;; size=28 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 540, prolog size 28, PerfScore 1335.00, instruction count 143, allocated bytes for code 540 (MethodHash=01c5cb85) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceEnumConstantSymbol:ForceComplete(Microsoft.CodeAnalysis.SourceLocation,System.Threading.CancellationToken):this (FullOpts)
+; Total bytes of code 516, prolog size 28, PerfScore 1328.60, instruction count 141, allocated bytes for code 516 (MethodHash=01c5cb85) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceEnumConstantSymbol:ForceComplete(Microsoft.CodeAnalysis.SourceLocation,System.Threading.CancellationToken):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -293,7 +291,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 135 (0x00087) Actual length = 540 (0x00021c)
+  Function Length   : 129 (0x00081) Actual length = 516 (0x000204)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+0 (0.00%) : 33184.dasm - System.Runtime.InteropServices.CustomMarshalers.EnumerableToDispatchMarshaler:.cctor() (FullOpts)

No diffs found?

+0 (0.00%) : 33200.dasm - System.Runtime.InteropServices.CustomMarshalers.EnumeratorViewOfEnumVariant:MoveNext():ubyte:this (FullOpts)

No diffs found?

+0 (0.00%) : 33216.dasm - System.Management.Automation.Language.TypeResolver:ResolveType(System.String,byref):System.Type (FullOpts)

No diffs found?

smoke_tests.nativeaot.windows.arm64.checked.mch
-8 (-2.17%) : 23325.dasm - System.Random+CompatPrng:Initialize(int):this (FullOpts)
@@ -75,13 +75,17 @@ G_M61938_IG05:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=80000 {x19
             neg     w14, w20
             tbnz    w14, #31, G_M61938_IG25
 						;; size=16 bbWeight=0.50 PerfScore 1.50
-G_M61938_IG06:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=80000 {x19}, byref
+G_M61938_IG06:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=80000 {x19}, byref, isz
             b       G_M61938_IG08
+            align   [0 bytes for IG09]
+            align   [0 bytes]
+            align   [0 bytes]
+            align   [0 bytes]
 						;; size=4 bbWeight=0.50 PerfScore 0.50
 G_M61938_IG07:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=80000 {x19}, byref
             movn    w14, #0xD1FFAB1E LSL #16
 						;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M61938_IG08:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=80000 {x19}, byref, isz
+G_M61938_IG08:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=80000 {x19}, byref
             neg     w14, w14
             movz    w15, #0xD1FFAB1E
             movk    w15, #0xD1FFAB1E LSL #16
@@ -92,12 +96,7 @@ G_M61938_IG08:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=80000 {x19},
             mov     wip0, #1
             add     x1, x0, #16
             ; byrRegs +[x1]
-            b       G_M61938_IG09
-            align   [0 bytes for IG09]
-            align   [0 bytes]
-            align   [0 bytes]
-            align   [0 bytes]
-						;; size=40 bbWeight=1 PerfScore 6.00
+						;; size=36 bbWeight=1 PerfScore 5.00
 G_M61938_IG09:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=80002 {x1 x19}, byref, isz
             add     w2, w12, #21
             sxtw    w12, w2
@@ -128,14 +127,14 @@ G_M61938_IG13:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=80002 {x1 x19
 G_M61938_IG14:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=80002 {x1 x19}, byref
             mov     w14, #1
 						;; size=4 bbWeight=1 PerfScore 0.50
-G_M61938_IG15:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=80002 {x1 x19}, byref, isz, align
+G_M61938_IG15:        ; bbWeight=4, gcrefRegs=0001 {x0}, byrefRegs=80002 {x1 x19}, byref, isz
             mov     w15, #1
             b       G_M61938_IG16
-            align   [4 bytes for IG16]
+            align   [0 bytes for IG16]
             align   [0 bytes]
             align   [0 bytes]
             align   [0 bytes]
-						;; size=12 bbWeight=4 PerfScore 6.00
+						;; size=8 bbWeight=4 PerfScore 6.00
 G_M61938_IG16:        ; bbWeight=15.84, gcrefRegs=0001 {x0}, byrefRegs=80002 {x1 x19}, byref, isz
             add     w12, w15, #30
             cmp     w12, #55
@@ -205,7 +204,7 @@ G_M61938_IG25:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             brk_windows #0
 						;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 368, prolog size 20, PerfScore 410.75, instruction count 99, allocated bytes for code 368 (MethodHash=3e410e0d) for method System.Random+CompatPrng:Initialize(int):this (FullOpts)
+; Total bytes of code 360, prolog size 20, PerfScore 408.95, instruction count 98, allocated bytes for code 360 (MethodHash=3e410e0d) for method System.Random+CompatPrng:Initialize(int):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -216,7 +215,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 92 (0x0005c) Actual length = 368 (0x000170)
+  Function Length   : 90 (0x0005a) Actual length = 360 (0x000168)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-4 (-1.75%) : 9606.dasm - System.Reflection.Runtime.MethodInfos.RuntimeConstructorInfo:GetParameters():System.Reflection.ParameterInfo[]:this (FullOpts)
@@ -38,12 +38,16 @@ G_M11822_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
             cmp     x1, x2
             bne     G_M11822_IG04
 						;; size=20 bbWeight=1 PerfScore 5.50
-G_M11822_IG03:        ; bbWeight=0.25, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
+G_M11822_IG03:        ; bbWeight=0.25, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             bl      System.Reflection.Runtime.MethodInfos.RuntimePlainConstructorInfo`1[System.Reflection.Runtime.MethodInfos.NativeFormat.NativeFormatMethodCommon]:get_RuntimeParameters():System.Reflection.Runtime.ParameterInfos.RuntimeParameterInfo[]:this
             ; gcr arg pop 0
             mov     x19, x0
             ; gcrRegs +[x19]
             b       G_M11822_IG05
+            align   [0 bytes for IG09]
+            align   [0 bytes]
+            align   [0 bytes]
+            align   [0 bytes]
 						;; size=12 bbWeight=0.25 PerfScore 0.62
 G_M11822_IG04:        ; bbWeight=0.25, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x19]
@@ -86,12 +90,7 @@ G_M11822_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=800
             ; byrRegs +[x3]
             add     x4, x0, #16
             ; byrRegs +[x4]
-            b       G_M11822_IG09
-            align   [0 bytes for IG09]
-            align   [0 bytes]
-            align   [0 bytes]
-            align   [0 bytes]
-						;; size=52 bbWeight=0.50 PerfScore 5.50
+						;; size=48 bbWeight=0.50 PerfScore 5.00
 G_M11822_IG09:        ; bbWeight=3.96, gcrefRegs=0001 {x0}, byrefRegs=0018 {x3 x4}, loop=IG09, byref, isz
             ; gcrRegs -[x19]
             ubfiz   x14, x1, #3, #32
@@ -143,7 +142,7 @@ G_M11822_IG13:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             brk_windows #0
 						;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 228, prolog size 12, PerfScore 75.40, instruction count 61, allocated bytes for code 228 (MethodHash=dd60d1d1) for method System.Reflection.Runtime.MethodInfos.RuntimeConstructorInfo:GetParameters():System.Reflection.ParameterInfo[]:this (FullOpts)
+; Total bytes of code 224, prolog size 12, PerfScore 74.50, instruction count 60, allocated bytes for code 224 (MethodHash=dd60d1d1) for method System.Reflection.Runtime.MethodInfos.RuntimeConstructorInfo:GetParameters():System.Reflection.ParameterInfo[]:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -154,7 +153,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 57 (0x00039) Actual length = 228 (0x0000e4)
+  Function Length   : 56 (0x00038) Actual length = 224 (0x0000e0)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
-4 (-0.65%) : 1237.dasm - System.Runtime.CompilerServices.CastCache:TrySet(ulong,ulong,ubyte):this (FullOpts)
@@ -91,8 +91,12 @@ G_M30956_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=100000 {x20}
             ; gcrRegs -[x0 x15]
             ; byrRegs -[x14 x20]
             b       G_M30956_IG19
+            align   [0 bytes for IG05]
+            align   [0 bytes]
+            align   [0 bytes]
+            align   [0 bytes]
 						;; size=36 bbWeight=0.50 PerfScore 4.50
-G_M30956_IG04:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=1100000 {x20 x24}, byref, isz
+G_M30956_IG04:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=1100000 {x20 x24}, byref
             ; byrRegs +[x20 x24]
             ror     x0, x19, #32
             eor     x0, x0, x21
@@ -112,12 +116,7 @@ G_M30956_IG04:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=1100000 {x20 x2
             mov     w1, wzr
             movz    w26, #0xD1FFAB1E
             movk    w26, #0xD1FFAB1E LSL #16
-            b       G_M30956_IG05
-            align   [0 bytes for IG05]
-            align   [0 bytes]
-            align   [0 bytes]
-            align   [0 bytes]
-						;; size=72 bbWeight=4 PerfScore 62.00
+						;; size=68 bbWeight=4 PerfScore 58.00
 G_M30956_IG05:        ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=1900000 {x20 x23 x24}, byref, isz
             ldr     w2, [x23]
             and     w2, w2, #0xD1FFAB1E
@@ -285,7 +284,7 @@ G_M30956_IG19:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
             ret     lr
 						;; size=28 bbWeight=0.50 PerfScore 4.00
 
-; Total bytes of code 620, prolog size 44, PerfScore 801.50, instruction count 159, allocated bytes for code 620 (MethodHash=e30d8713) for method System.Runtime.CompilerServices.CastCache:TrySet(ulong,ulong,ubyte):this (FullOpts)
+; Total bytes of code 616, prolog size 44, PerfScore 797.10, instruction count 158, allocated bytes for code 616 (MethodHash=e30d8713) for method System.Runtime.CompilerServices.CastCache:TrySet(ulong,ulong,ubyte):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -296,7 +295,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 155 (0x0009b) Actual length = 620 (0x00026c)
+  Function Length   : 154 (0x0009a) Actual length = 616 (0x000268)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
+0 (0.00%) : 24080.dasm - ThreadTest:ExpectException[System.__Canon](System.Action,System.String) (FullOpts)

No diffs found?

+0 (0.00%) : 24096.dasm - System.Threading.TimerQueue:LinkTimer(System.Threading.TimerQueueTimer):this (FullOpts)

No diffs found?

+0 (0.00%) : 24112.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 23,253 20 0 23,233 -136 +0
benchmarks.run_pgo.windows.arm64.checked.mch 71,982 87 0 71,895 -464 +0
benchmarks.run_tiered.windows.arm64.checked.mch 42,951 37 0 42,914 -192 +0
coreclr_tests.run.windows.arm64.checked.mch 582,856 81 0 582,775 -400 +0
libraries.crossgen2.windows.arm64.checked.mch 225,486 0 0 225,486 -0 +0
libraries.pmi.windows.arm64.checked.mch 273,640 34 0 273,606 -252 +0
libraries_tests.run.windows.arm64.Release.mch 577,017 158 0 576,859 -964 +0
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch 292,875 38 0 292,837 -284 +0
realworld.run.windows.arm64.checked.mch 30,994 32 0 30,962 -260 +0
smoke_tests.nativeaot.windows.arm64.checked.mch 20,591 4 0 20,587 -20 +0
2,141,645 491 0 2,141,154 -2,972 +0

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
benchmarks.run.windows.arm64.checked.mch 24,532 4 24,528 70 (0.28%) 70 (0.28%)
benchmarks.run_pgo.windows.arm64.checked.mch 77,524 47,367 30,157 23 (0.03%) 23 (0.03%)
benchmarks.run_tiered.windows.arm64.checked.mch 47,460 36,961 10,499 10 (0.02%) 10 (0.02%)
coreclr_tests.run.windows.arm64.checked.mch 614,414 378,128 236,286 1,009 (0.16%) 1,009 (0.16%)
libraries.crossgen2.windows.arm64.checked.mch 243,020 15 243,005 11 (0.00%) 11 (0.00%)
libraries.pmi.windows.arm64.checked.mch 302,327 6 302,321 921 (0.30%) 921 (0.30%)
libraries_tests.run.windows.arm64.Release.mch 617,047 460,626 156,421 480 (0.08%) 480 (0.08%)
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch 314,315 21,467 292,848 1,049 (0.33%) 1,049 (0.33%)
realworld.run.windows.arm64.checked.mch 33,109 3 33,106 117 (0.35%) 117 (0.35%)
smoke_tests.nativeaot.windows.arm64.checked.mch 24,026 7 24,019 101 (0.42%) 101 (0.42%)
2,297,774 944,584 1,353,190 3,791 (0.16%) 3,791 (0.16%)

jit-analyze output

@amanasifkhalid
Copy link
Member Author

Some of the size improvements stem from the jump-to-next removal optimization working in a few more scenarios. The optimization will skip blocks with alignment (though under normal circumstances, I don't think there's any issue with removing a jump with alignment padding after it, and just falling through; I only ever faced issues in JitStress when that padding could contain int3 instructions). Previously, it was possible for a BBJ_ALWAYS to jump to the next block, but not have BBF_NONE_QUIRK set; when emitting padding, we might decide to place padding after this block's (removable) jump, thus blocking the jump-to-next optimization because the block now has alignment. Now that the conditions for (not) inserting padding after a jump are much closer to those for doing the optimization, we block the latter less often (in fact, we might be able to just assert that the block doesn't have any alignment if it meets all other conditions for the jump removal optimization, instead of checking that it doesn't have alignment).

@amanasifkhalid
Copy link
Member Author

Also, I think many of the size increases have to do with the fact that blocks with BBF_NONE_QUIRK aren't guaranteed to jump to the next block: While we may initially create a BBJ_ALWAYS to the next block with BBF_NONE_QUIRK as a replacement for BBJ_NONE, we may later move the block away from its jump target, or insert blocks after it, without removing BBF_NONE_QUIRK. @BruceForstall introduced some logic to unset the flag in a few places, but I imagine there are plenty of places in the JIT where we check that bbFallsThrough returns false (which it always does for BBJ_ALWAYS, at the moment), and just insert after the block without unsetting BBF_NONE_QUIRK. So by the time we get to loop alignment, we might have multiple BBJ_ALWAYS blocks that are acceptable candidates for placing align instructions after, but we skip them because BBF_NONE_QUIRK is still set. Now that we only check that the block doesn't jump to the next block instead of the flag, this isn't a problem anymore.

Overall, I think the BBJ_NONE removal caused our loop alignment to make bizarre choices based on whether this flag was propagated correctly or not (which seems like a tenuous strategy), and would sometimes decide to place alignment padding after a jump that's going to be removed, which is suboptimal. This change seems to bring us back to the old behavior, or at least close to it.

@amanasifkhalid amanasifkhalid changed the title JIT: Remove no-diff BBF_NONE_QUIRK checks JIT: Remove BBF_NONE_QUIRK check in loop alignment Dec 19, 2023
@amanasifkhalid amanasifkhalid merged commit b0e7ee7 into dotnet:main Dec 19, 2023
129 checks passed
@cincuranet
Copy link
Contributor

cincuranet commented Dec 27, 2023

Some regressions probably related to this:

cc @amanasifkhalid

@amanasifkhalid amanasifkhalid deleted the bbf-none-quirk branch January 3, 2024 16:29
@github-actions github-actions bot locked and limited conversation to collaborators Feb 3, 2024
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.

4 participants