-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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
Conversation
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch Issue Details...or at least what I think are no-diff checks. Part of #95998.
|
cc @dotnet/jit-contrib. No diffs. I noticed |
I don't see any diffs locally with |
We disable loop alignment completely when running |
Ah thank you @jakobbotsch, now I'm seeing diffs. Just removing the MISSED contexts: 3,959 (0.17%) Overall (-1,016 bytes)
FullOpts (-1,016 bytes)
and on win-arm64: MISSED contexts: 3,791 (0.16%) Overall (-2,972 bytes)
MinOpts (+0 bytes)
FullOpts (-2,972 bytes)
|
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. |
Ah sorry about that, I removed the code blocks above (I didn't realize GitHub would render the dropdowns that nicely).
I'll post the example diffs below in separate comments -- they're too long for me to fit them in one comment. |
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)
FullOpts (-1,016 bytes)
Example diffsbenchmarks.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:
DetailsImprovements/regressions per collection
Context information
jit-analyze output |
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)
MinOpts (+0 bytes)
FullOpts (-2,972 bytes)
Example diffsbenchmarks.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? DetailsImprovements/regressions per collection
Context information
jit-analyze output |
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 |
Also, I think many of the size increases have to do with the fact that blocks with Overall, I think the |
Some regressions probably related to this: |
...or at least what I think are no-diff checks. Part of #95998.