[wasm] Bump chrome for testing - linux: 119.0.6045.159, windows: 119.0.6045.160 - #5

Open
github-actions[bot] wants to merge 1 commit into
mainfrom
update-chrome-version-6917071168
Open

[wasm] Bump chrome for testing - linux: 119.0.6045.159, windows: 119.0.6045.160#5
github-actions[bot] wants to merge 1 commit into
mainfrom
update-chrome-version-6917071168

Conversation

@github-actions

Copy link
Copy Markdown

No description provided.

AndyAyersMS pushed a commit that referenced this pull request Sep 7, 2024
* bug #1: don't allow for values out of the SerializationRecordType enum range
* bug #2: throw SerializationException rather than KeyNotFoundException when the referenced record is missing or it points to a record of different type
* bug #3: throw SerializationException rather than FormatException when it's being thrown by BinaryReader (or sth else that we use)
* bug #4: document the fact that IOException can be thrown
* bug #5: throw SerializationException rather than OverflowException when parsing the decimal fails
* bug #6: 0 and 17 are illegal values for PrimitiveType enum
* bug #7: throw SerializationException when a surrogate character is read (so far an ArgumentException was thrown)
AndyAyersMS pushed a commit that referenced this pull request Mar 24, 2026
i.e. Fold: (-(x)) == 0 -> x == 0
arm64 asmdiffs
Diffs are based on <span style="color:#1460aa">436,095</span> contexts
(<span style="color:#1460aa">26,618</span> MinOpts, <span
style="color:#1460aa">409,477</span> FullOpts).
<details>
<summary>Overall (<span style="color:green">-40</span> bytes)</summary>
<div style="margin-left:1em">
|Collection|Base size (bytes)|Diff size (bytes)|PerfScore in Diffs
|---|--:|--:|--:|
|libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch|183,146,276|<span
style="color:green">-40</span>|<span style="color:green">-0.09%</span>|
|benchmarks.run.linux.arm64.checked.mch|21,285,888|+0|0.00%|
|smoke_tests.nativeaot.linux.arm64.checked.mch|3,003,400|+0|0.00%|
</div></details>
<details>
<summary>FullOpts (<span style="color:green">-40</span> bytes)</summary>
<div style="margin-left:1em">
|Collection|Base size (bytes)|Diff size (bytes)|PerfScore in Diffs
|---|--:|--:|--:|
|libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch|168,630,412|<span
style="color:green">-40</span>|<span style="color:green">-0.09%</span>|
|benchmarks.run.linux.arm64.checked.mch|20,953,436|+0|0.00%|
|smoke_tests.nativeaot.linux.arm64.checked.mch|3,001,776|+0|0.00%|
</div></details>
<details>
<summary>Example diffs</summary>
<div style="margin-left:1em">
<details>
<summary>libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch</summary>
<div style="margin-left:1em">
<details>
<summary><span style="color:green">-4</span> (<span
style="color:green">-1.27%</span>) : 142473.dasm -
System.IO.Pipelines.Tests.BufferSegmentPoolTest:GetSegments(System.IO.Pipelines.ReadResult):System.Collections.Generic.List`1[System.Buffers.ReadOnlySequenceSegment`1[byte]]
(FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -53,8 +53,7 @@ G_M13215_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byre
G_M13215_IG03: ; bbWeight=0.50, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref, isz
asr w2, w2, dotnet#31
lsl w2, w2, #1
- add w0, w2, w0, ASR dotnet#31
- negs w0, w0
+ adds w0, w2, w0, ASR dotnet#31
bne G_M13215_IG04
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL dotnet#16
@@ -76,7 +75,7 @@ G_M13215_IG03: ; bbWeight=0.50, gcrefRegs=80002 {x1 x19}, byrefRegs=0000
mov x19, x0
; gcrRegs +[x19]
b G_M13215_IG05
- ;; size=68 bbWeight=0.50 PerfScore 6.00
+ ;; size=64 bbWeight=0.50 PerfScore 5.75
G_M13215_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x19-x20]
mov x20, xzr
@@ -179,7 +178,7 @@ G_M13215_IG13: ; bbWeight=0, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=00
b G_M13215_IG06
;; size=12 bbWeight=0 PerfScore 0.00
-; Total bytes of code 316, prolog size 16, PerfScore 140.93, instruction count 79, allocated bytes for code 316 (MethodHash=c6bccc60) for method System.IO.Pipelines.Tests.BufferSegmentPoolTest:GetSegments(System.IO.Pipelines.ReadResult):System.Collections.Generic.List`1[System.Buffers.ReadOnlySequenceSegment`1[byte]] (FullOpts)
+; Total bytes of code 312, prolog size 16, PerfScore 140.68, instruction count 78, allocated bytes for code 312 (MethodHash=c6bccc60) for method System.IO.Pipelines.Tests.BufferSegmentPoolTest:GetSegments(System.IO.Pipelines.ReadResult):System.Collections.Generic.List`1[System.Buffers.ReadOnlySequenceSegment`1[byte]] (FullOpts)
; ============================================================
Unwind Info:
@@ -190,7 +189,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 79 (0x0004f) Actual length = 316 (0x00013c)
+ Function Length : 78 (0x0004e) Actual length = 312 (0x000138)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
```
</div></details>
<details>
<summary><span style="color:green">-4</span> (<span
style="color:green">-0.27%</span>) : 162917.dasm -
System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory():this
(FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -531,10 +531,9 @@ G_M17523_IG25: ; bbWeight=1, gcrefRegs=400002 {x1 x22}, byrefRegs=0000 {}
G_M17523_IG26: ; bbWeight=0.50, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref, isz
asr w0, w0, dotnet#31
lsl w0, w0, #1
- add w0, w0, w2, ASR dotnet#31
- negs w0, w0
+ adds w0, w0, w2, ASR dotnet#31
beq G_M17523_IG29
- ;; size=20 bbWeight=0.50 PerfScore 2.25
+ ;; size=16 bbWeight=0.50 PerfScore 2.00
G_M17523_IG27: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x1 x19]
mov w19, wzr
@@ -733,7 +732,7 @@ G_M17523_IG43: ; bbWeight=0.00, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, b
brk #0
;; size=32 bbWeight=0.00 PerfScore 0.00
-; Total bytes of code 1488, prolog size 36, PerfScore 200.96, instruction count 372, allocated bytes for code 1488 (MethodHash=abb9bb8c) for method System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory():this (FullOpts)
+; Total bytes of code 1484, prolog size 36, PerfScore 200.71, instruction count 371, allocated bytes for code 1484 (MethodHash=abb9bb8c) for method System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory():this (FullOpts)
; ============================================================
Unwind Info:
@@ -744,7 +743,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 372 (0x00174) Actual length = 1488 (0x0005d0)
+ Function Length : 371 (0x00173) Actual length = 1484 (0x0005cc)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
```
</div></details>
<details>
<summary><span style="color:green">-4</span> (<span
style="color:green">-0.26%</span>) : 162915.dasm -
System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory_String():this
(FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -208,7 +208,7 @@
; V197 cse1 [V197,T40] ( 2, 1 ) ref -> x0 "CSE #7: moderate"
; V198 cse2 [V198,T44] ( 2, 1 ) int -> x23 "CSE #4: moderate"
; V199 cse3 [V199,T45] ( 2, 1 ) long -> x1 "CSE #5: moderate"
-; V200 cse4 [V200,T33] ( 3, 1.50) int -> x1 "CSE dotnet#17: moderate"
+; V200 cse4 [V200,T33] ( 3, 1.50) int -> x1 "CSE dotnet#16: moderate"
; V201 rat0 [V201,T01] ( 3, 5.62) byref -> x1 "fgMakeTemp is creating a new local variable"
; V202 rat1 [V202,T07] ( 5, 3.75) ref -> x0 "replacement local"
; V203 rat2 [V203,T37] ( 3, 1.25) long -> x2 "CSE for expectedClsNode"
@@ -623,8 +623,7 @@ G_M55449_IG30: ; bbWeight=1, gcrefRegs=4180002 {x1 x19 x20 x26}, byrefReg
G_M55449_IG31: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
asr w1, w21, dotnet#31
lsl w1, w1, #1
- add w1, w1, w22, ASR dotnet#31
- negs w1, w1
+ adds w1, w1, w22, ASR dotnet#31
bne G_M55449_IG32
mov x1, x19
; gcrRegs +[x1]
@@ -642,7 +641,7 @@ G_M55449_IG31: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=000
; gcrRegs -[x1 x20]
mov w20, #1
b G_M55449_IG33
- ;; size=68 bbWeight=0.50 PerfScore 6.00
+ ;; size=64 bbWeight=0.50 PerfScore 5.75
G_M55449_IG32: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
mov w20, wzr
;; size=4 bbWeight=0.50 PerfScore 0.25
@@ -776,7 +775,7 @@ G_M55449_IG46: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
brk #0
;; size=40 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1516, prolog size 48, PerfScore 174.78, instruction count 379, allocated bytes for code 1516 (MethodHash=a4562766) for method System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory_String():this (FullOpts)
+; Total bytes of code 1512, prolog size 48, PerfScore 174.53, instruction count 378, allocated bytes for code 1512 (MethodHash=a4562766) for method System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory_String():this (FullOpts)
; ============================================================
Unwind Info:
@@ -787,7 +786,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 379 (0x0017b) Actual length = 1516 (0x0005ec)
+ Function Length : 378 (0x0017a) Actual length = 1512 (0x0005e8)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
```
</div></details>
<details>
<summary>+0 (0.00%) : 223365.dasm -
System.Resources.Extensions.DeserializingResourceReader:CompareStringEqualsName(System.String):bool:this
(FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -106,7 +106,7 @@ G_M52056_IG05: ; bbWeight=0.50, gcrefRegs=500000 {x20 x22}, byrefRegs=000
ldr x3, [x3]
blr x3
; gcrRegs -[x0-x1 x20 x22]
- negs w0, w0
+ cmp w0, #0
cset x0, eq
;; size=40 bbWeight=0.50 PerfScore 4.25
G_M52056_IG06: ; bbWeight=0.50, epilog, nogc, extend
```
</div></details>
<details>
<summary><span style="color:green">-4</span> (<span
style="color:green">-0.02%</span>) : 106573.dasm -
System.Data.Tests.DataTableTest2:Select_ByFilter():this
(FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -3678,8 +3678,7 @@ G_M43941_IG97: ; bbWeight=1, gcVars=0000000000000000000000000000000000000
G_M43941_IG98: ; bbWeight=4, gcrefRegs=4780004 {x2 x19 x20 x21 x22 x26}, byrefRegs=0000 {}, byref, isz
ldr w1, [x2, #0x08]
ldr w0, [fp, #0xD1FFAB1E]	// [V74 tmp49]
- sub w1, w0, w1
- negs w1, w1
+ subs w1, w0, w1
beq G_M43941_IG90
ldp w0, w1, [x22, #0x10]
add w1, w1, #1
@@ -3688,7 +3687,7 @@ G_M43941_IG98: ; bbWeight=4, gcrefRegs=4780004 {x2 x19 x20 x21 x22 x26},
ldr w1, [x2, #0x08]
cmp w1, w0
bls G_M43941_IG100
- ;; size=48 bbWeight=4 PerfScore 76.00
+ ;; size=44 bbWeight=4 PerfScore 74.00
G_M43941_IG99: ; bbWeight=3.03, gcVars=00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002 {V06}, gcrefRegs=4780004 {x2 x19 x20 x21 x22 x26}, byrefRegs=0000 {}, gcvars, byref
; GC ptr vars -{V75}
add w1, w0, #1
@@ -7803,7 +7802,7 @@ RWD00 dq	00740053002D0031h, 0067006E00690072h
RWD16 dq	007200740053002Dh, 00310067006E0069h
-; Total bytes of code 18184, prolog size 44, PerfScore 10435.99, instruction count 4546, allocated bytes for code 18184 (MethodHash=c958545a) for method System.Data.Tests.DataTableTest2:Select_ByFilter():this (FullOpts)
+; Total bytes of code 18180, prolog size 44, PerfScore 10433.99, instruction count 4545, allocated bytes for code 18180 (MethodHash=c958545a) for method System.Data.Tests.DataTableTest2:Select_ByFilter():this (FullOpts)
; ============================================================
Unwind Info:
@@ -7814,7 +7813,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 4130 (0x01022) Actual length = 16520 (0x004088)
+ Function Length : 4129 (0x01021) Actual length = 16516 (0x004084)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
```
</div></details>
<details>
<summary><span style="color:green">-4</span> (<span
style="color:green">-0.16%</span>) : 141855.dasm -
System.IO.Pipelines.Tests.PipePoolTests:GetMemoryOverMaxPoolSizeAllocatesArray():this
(FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -595,8 +595,7 @@ G_M36412_IG24: ; bbWeight=1, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefReg
G_M36412_IG25: ; bbWeight=0.50, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
asr w1, w24, dotnet#31
lsl w1, w1, #1
- add w1, w1, w25, ASR dotnet#31
- negs w1, w1
+ adds w1, w1, w25, ASR dotnet#31
bne G_M36412_IG26
mov x1, x20
; gcrRegs +[x1]
@@ -618,7 +617,7 @@ G_M36412_IG25: ; bbWeight=0.50, gcrefRegs=B80000 {x19 x20 x21 x23}, byref
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
b G_M36412_IG27
- ;; size=68 bbWeight=0.50 PerfScore 6.00
+ ;; size=64 bbWeight=0.50 PerfScore 5.75
G_M36412_IG26: ; bbWeight=0.50, gcrefRegs=A80000 {x19 x21 x23}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x20]
mov x20, xzr
@@ -1232,7 +1231,7 @@ RWD16 dq	<unknown method>
dq	G_M36412_IG51
-; Total bytes of code 2528, prolog size 48, PerfScore 347.37, instruction count 632, allocated bytes for code 2528 (MethodHash=f7d471c3) for method System.IO.Pipelines.Tests.PipePoolTests:GetMemoryOverMaxPoolSizeAllocatesArray():this (FullOpts)
+; Total bytes of code 2524, prolog size 48, PerfScore 347.12, instruction count 631, allocated bytes for code 2524 (MethodHash=f7d471c3) for method System.IO.Pipelines.Tests.PipePoolTests:GetMemoryOverMaxPoolSizeAllocatesArray():this (FullOpts)
; ============================================================
Unwind Info:
@@ -1243,7 +1242,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 591 (0x0024f) Actual length = 2364 (0x00093c)
+ Function Length : 590 (0x0024e) Actual length = 2360 (0x000938)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
```
</div></details>
</div></details>
<details>
<summary>benchmarks.run.linux.arm64.checked.mch</summary>
<div style="margin-left:1em">
<details>
<summary>+0 (0.00%) : 3177.dasm -
System.Resources.ResourceReader:CompareStringEqualsName(System.String):bool:this
(FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -106,7 +106,7 @@ G_M1070_IG05: ; bbWeight=0.50, gcrefRegs=500000 {x20 x22}, byrefRegs=0000
ldr x3, [x3]
blr x3
; gcrRegs -[x0-x1 x20 x22]
- negs w0, w0
+ cmp w0, #0
cset x0, eq
;; size=40 bbWeight=0.50 PerfScore 4.25
G_M1070_IG06: ; bbWeight=0.50, epilog, nogc, extend
```
</div></details>
</div></details>
<details>
<summary>smoke_tests.nativeaot.linux.arm64.checked.mch</summary>
<div style="margin-left:1em">
<details>
<summary>+0 (0.00%) : 18583.dasm -
Generics+TestAsyncGVMScenarios:RunAsync() (FullOpts)</summary>
<div style="margin-left:1em">
No diffs found?
</div></details>
<details>
<summary>+0 (0.00%) : 18730.dasm -
Generics+TestAsyncGVMScenarios:AsyncGvm1[System.__Canon]():this
(FullOpts)</summary>
<div style="margin-left:1em">
No diffs found?
</div></details>
<details>
<summary>+0 (0.00%) : 18865.dasm -
Generics+TestAsyncGVMScenarios:AsyncGvm2[System.__Canon]():this
(FullOpts)</summary>
<div style="margin-left:1em">
No diffs found?
</div></details>
<details>
<summary>+0 (0.00%) : 18873.dasm -
System.Threading.Tasks.Task:get_CompletedTask() (FullOpts)</summary>
<div style="margin-left:1em">
No diffs found?
</div></details>
</div></details>
</div></details>
<details>
<summary>Details</summary>
<div style="margin-left:1em">
#### Size improvements/regressions per collection
|Collection|Contexts with diffs|Improvements|Regressions|Same
size|Improvements (bytes)|Regressions (bytes)|
|---|--:|--:|--:|--:|--:|--:|
|libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch|11|<span
style="color:green">10</span>|<span style="color:red">0</span>|<span
style="color:blue">1</span>|<span style="color:green">-40</span>|<span
style="color:red">+0</span>|
|benchmarks.run.linux.arm64.checked.mch|1|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">1</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
|smoke_tests.nativeaot.linux.arm64.checked.mch|4|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">4</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
||16|<span style="color:green">10</span>|<span
style="color:red">0</span>|<span style="color:blue">6</span>|<span
style="color:green">-40</span>|<span style="color:red">+0</span>|
---
#### PerfScore improvements/regressions per collection
|Collection|Contexts with diffs|Improvements|Regressions|Same
PerfScore|Improvements (PerfScore)|Regressions (PerfScore)|PerfScore
Overall in FullOpts|
|---|--:|--:|--:|--:|--:|--:|--:|
|libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch|11|<span
style="color:green">10</span>|<span style="color:red">0</span>|<span
style="color:blue">1</span>|<span
style="color:green">-0.10%</span>|0.00%|<span
style="color:green">-0.0000%</span>|
|benchmarks.run.linux.arm64.checked.mch|1|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">1</span>|0.00%|0.00%|0.0000%|
|smoke_tests.nativeaot.linux.arm64.checked.mch|4|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">4</span>|0.00%|0.00%|0.0000%|
---
#### Context information
|Collection|Diffed contexts|MinOpts|FullOpts|Missed, base|Missed, diff|
|---|--:|--:|--:|--:|--:|
|libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch|354,001|23,273|330,728|0
(0.00%)|0 (0.00%)|
|benchmarks.run.linux.arm64.checked.mch|63,204|3,337|59,867|0 (0.00%)|0
(0.00%)|
|smoke_tests.nativeaot.linux.arm64.checked.mch|18,890|8|18,882|0
(0.00%)|0 (0.00%)|
||436,095|26,618|409,477|0 (0.00%)|0 (0.00%)|
---
#### jit-analyze output
<details>
<summary>libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch</summary>
<div style="margin-left:1em">
```
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 183146276 (overridden on cmd)
Total bytes of diff: 183146236 (overridden on cmd)
Total bytes of delta: -40 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
```
<details>
<summary>Detail diffs</summary>
```
Top file improvements (bytes):
-4 : 162916.dasm (-0.242% of base)
-4 : 141852.dasm (-0.162% of base)
-4 : 141855.dasm (-0.158% of base)
-4 : 141861.dasm (-0.201% of base)
-4 : 162917.dasm (-0.269% of base)
-4 : 142473.dasm (-1.266% of base)
-4 : 142389.dasm (-0.182% of base)
-4 : 162915.dasm (-0.264% of base)
-4 : 162918.dasm (-0.185% of base)
-4 : 106573.dasm (-0.022% of base)
10 total files with Code Size differences (10 improved, 0 regressed), 1 unchanged.
Top method improvements (bytes):
-4 (-0.022% of base) : 106573.dasm - System.Data.Tests.DataTableTest2:Select_ByFilter():this (FullOpts)
-4 (-1.266% of base) : 142473.dasm - System.IO.Pipelines.Tests.BufferSegmentPoolTest:GetSegments(System.IO.Pipelines.ReadResult):System.Collections.Generic.List`1[System.Buffers.ReadOnlySequenceSegment`1[byte]] (FullOpts)
-4 (-0.182% of base) : 142389.dasm - System.IO.Pipelines.Tests.PipelineReaderWriterFacts:ResetAfterCompleteReaderAndWriterWithoutAdvancingClearsEverything():this (FullOpts)
-4 (-0.162% of base) : 141852.dasm - System.IO.Pipelines.Tests.PipePoolTests:GetMemoryAtMaxPoolSizeAllocatesFromPool():this (FullOpts)
-4 (-0.158% of base) : 141855.dasm - System.IO.Pipelines.Tests.PipePoolTests:GetMemoryOverMaxPoolSizeAllocatesArray():this (FullOpts)
-4 (-0.201% of base) : 141861.dasm - System.IO.Pipelines.Tests.PipePoolTests:WritesToArrayPoolByDefault():this (FullOpts)
-4 (-0.242% of base) : 162916.dasm - System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_IMemoryList_MultiBlock():this (FullOpts)
-4 (-0.185% of base) : 162918.dasm - System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_IMemoryList_SingleBlock():this (FullOpts)
-4 (-0.264% of base) : 162915.dasm - System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory_String():this (FullOpts)
-4 (-0.269% of base) : 162917.dasm - System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory():this (FullOpts)
Top method improvements (percentages):
-4 (-1.266% of base) : 142473.dasm - System.IO.Pipelines.Tests.BufferSegmentPoolTest:GetSegments(System.IO.Pipelines.ReadResult):System.Collections.Generic.List`1[System.Buffers.ReadOnlySequenceSegment`1[byte]] (FullOpts)
-4 (-0.269% of base) : 162917.dasm - System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory():this (FullOpts)
-4 (-0.264% of base) : 162915.dasm - System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory_String():this (FullOpts)
-4 (-0.242% of base) : 162916.dasm - System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_IMemoryList_MultiBlock():this (FullOpts)
-4 (-0.201% of base) : 141861.dasm - System.IO.Pipelines.Tests.PipePoolTests:WritesToArrayPoolByDefault():this (FullOpts)
-4 (-0.185% of base) : 162918.dasm - System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_IMemoryList_SingleBlock():this (FullOpts)
-4 (-0.182% of base) : 142389.dasm - System.IO.Pipelines.Tests.PipelineReaderWriterFacts:ResetAfterCompleteReaderAndWriterWithoutAdvancingClearsEverything():this (FullOpts)
-4 (-0.162% of base) : 141852.dasm - System.IO.Pipelines.Tests.PipePoolTests:GetMemoryAtMaxPoolSizeAllocatesFromPool():this (FullOpts)
-4 (-0.158% of base) : 141855.dasm - System.IO.Pipelines.Tests.PipePoolTests:GetMemoryOverMaxPoolSizeAllocatesArray():this (FullOpts)
-4 (-0.022% of base) : 106573.dasm - System.Data.Tests.DataTableTest2:Select_ByFilter():this (FullOpts)
10 total methods with Code Size differences (10 improved, 0 regressed).
```
</details>
--------------------------------------------------------------------------------
</div></details>
<details>
<summary>benchmarks.run.linux.arm64.checked.mch</summary>
<div style="margin-left:1em">
```
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 21285888 (overridden on cmd)
Total bytes of diff: 21285888 (overridden on cmd)
Total bytes of delta: 0 (0.00 % of base)
```
<details>
<summary>Detail diffs</summary>
```
0 total files with Code Size differences (0 improved, 0 regressed), 1 unchanged.
0 total methods with Code Size differences (0 improved, 0 regressed).
```
</details>
--------------------------------------------------------------------------------
</div></details>
</div></details>
x64 asmdiffs
Diffs are based on <span style="color:#1460aa">2,787,549</span> contexts
(<span style="color:#1460aa">1,078,277</span> MinOpts, <span
style="color:#1460aa">1,709,272</span> FullOpts).
<details>
<summary>Overall (<span style="color:green">-116</span> bytes)</summary>
<div style="margin-left:1em">
|Collection|Base size (bytes)|Diff size (bytes)|PerfScore in Diffs
|---|--:|--:|--:|
|coreclr_tests.run.linux.x64.checked.mch|305,501,642|<span
style="color:green">-110</span>|<span
style="color:green">-14.87%</span>|
|libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch|157,729,192|<span
style="color:green">-2</span>|<span style="color:green">-0.01%</span>|
|libraries_tests.run.linux.x64.Release.mch|392,784,680|<span
style="color:green">-4</span>|<span style="color:green">-0.01%</span>|
</div></details>
<details>
<summary>MinOpts (<span style="color:green">-14</span> bytes)</summary>
<div style="margin-left:1em">
|Collection|Base size (bytes)|Diff size (bytes)|PerfScore in Diffs
|---|--:|--:|--:|
|coreclr_tests.run.linux.x64.checked.mch|197,469,852|<span
style="color:green">-10</span>|<span style="color:green">-1.28%</span>|
|libraries_tests.run.linux.x64.Release.mch|215,792,030|<span
style="color:green">-4</span>|<span style="color:green">-0.01%</span>|
</div></details>
<details>
<summary>FullOpts (<span style="color:green">-102</span>
bytes)</summary>
<div style="margin-left:1em">
|Collection|Base size (bytes)|Diff size (bytes)|PerfScore in Diffs
|---|--:|--:|--:|
|coreclr_tests.run.linux.x64.checked.mch|108,031,790|<span
style="color:green">-100</span>|<span
style="color:green">-16.74%</span>|
|libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch|146,383,976|<span
style="color:green">-2</span>|<span style="color:green">-0.01%</span>|
</div></details>
<details>
<summary>Example diffs</summary>
<div style="margin-left:1em">
<details>
<summary>coreclr_tests.run.linux.x64.checked.mch</summary>
<div style="margin-left:1em">
<details>
<summary><span style="color:green">-8</span> (<span
style="color:green">-29.63%</span>) : 199901.dasm -
TestNeg.Program:NegsBinOpSingleLine(int,int):bool (FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -18,23 +18,19 @@ G_M18888_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=0 bbWeight=1 PerfScore 0.00
G_M18888_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
sar edi, 1
- mov eax, edi
- neg eax
setne al
movzx rax, al
- add esi, esi
- mov ecx, esi
- neg ecx
+ shl esi, 1
setne cl
movzx rcx, cl
or eax, ecx
- ;; size=26 bbWeight=1 PerfScore 4.50
+ ;; size=18 bbWeight=1 PerfScore 3.75
G_M18888_IG03: ; bbWeight=1, epilog, nogc, extend
ret ;; size=1 bbWeight=1 PerfScore 1.00
; END METHOD TestNeg.Program:NegsBinOpSingleLine(int,int):bool
-; Total bytes of code 27, prolog size 0, PerfScore 5.50, instruction count 12, allocated bytes for code 27 (MethodHash=d08ab637) for method TestNeg.Program:NegsBinOpSingleLine(int,int):bool (FullOpts)
+; Total bytes of code 19, prolog size 0, PerfScore 4.75, instruction count 8, allocated bytes for code 19 (MethodHash=d08ab637) for method TestNeg.Program:NegsBinOpSingleLine(int,int):bool (FullOpts)
; ============================================================
Unwind Info:
```
</div></details>
<details>
<summary><span style="color:green">-7</span> (<span
style="color:green">-29.17%</span>) : 199894.dasm -
TestNeg.Program:NegsLSR(uint):int (FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -16,20 +16,17 @@
G_M6300_IG01: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
;; size=0 bbWeight=0.50 PerfScore 0.00
G_M6300_IG02: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov eax, -1
+ mov ecx, 1
shr edi, 3
- mov eax, edi
- mov ecx, -1
- mov edx, 1
- neg rax
- mov eax, edx
- cmove eax, ecx
- ;; size=23 bbWeight=0.50 PerfScore 1.00
+ cmovne eax, ecx
+ ;; size=16 bbWeight=0.50 PerfScore 0.62
G_M6300_IG03: ; bbWeight=0.50, epilog, nogc, extend
ret ;; size=1 bbWeight=0.50 PerfScore 0.50
; END METHOD TestNeg.Program:NegsLSR(uint):int
-; Total bytes of code 24, prolog size 0, PerfScore 1.50, instruction count 8, allocated bytes for code 24 (MethodHash=2a8ee763) for method TestNeg.Program:NegsLSR(uint):int (FullOpts)
+; Total bytes of code 17, prolog size 0, PerfScore 1.12, instruction count 5, allocated bytes for code 17 (MethodHash=2a8ee763) for method TestNeg.Program:NegsLSR(uint):int (FullOpts)
; ============================================================
Unwind Info:
```
</div></details>
<details>
<summary><span style="color:green">-7</span> (<span
style="color:green">-29.17%</span>) : 199896.dasm -
TestNeg.Program:NegsLargeShift(uint):int (FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -16,20 +16,17 @@
G_M11276_IG01: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
;; size=0 bbWeight=0.50 PerfScore 0.00
G_M11276_IG02: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov eax, -1
+ mov ecx, 1
shl edi, 4
- mov eax, edi
- mov ecx, -1
- mov edx, 1
- neg rax
- mov eax, edx
- cmove eax, ecx
- ;; size=23 bbWeight=0.50 PerfScore 1.00
+ cmovne eax, ecx
+ ;; size=16 bbWeight=0.50 PerfScore 0.62
G_M11276_IG03: ; bbWeight=0.50, epilog, nogc, extend
ret ;; size=1 bbWeight=0.50 PerfScore 0.50
; END METHOD TestNeg.Program:NegsLargeShift(uint):int
-; Total bytes of code 24, prolog size 0, PerfScore 1.50, instruction count 8, allocated bytes for code 24 (MethodHash=43eed3f3) for method TestNeg.Program:NegsLargeShift(uint):int (FullOpts)
+; Total bytes of code 17, prolog size 0, PerfScore 1.12, instruction count 5, allocated bytes for code 17 (MethodHash=43eed3f3) for method TestNeg.Program:NegsLargeShift(uint):int (FullOpts)
; ============================================================
Unwind Info:
```
</div></details>
<details>
<summary><span style="color:green">-5</span> (<span
style="color:green">-1.71%</span>) : 531325.dasm -
ILGEN_CLASS:ILGEN_METHOD(bool,char,short,int):char (Tier0)</summary>
<div style="margin-left:1em">
```diff
@@ -74,16 +74,14 @@ G_M28265_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov qword ptr [rbp-0x40], rdx
mov rax, qword ptr [rbp-0x40]
mov qword ptr [rbp-0x48], rax
- mov eax, dword ptr [rbp-0x28]
- neg rax
- test rax, rax
+ cmp dword ptr [rbp-0x28], 0
jne SHORT G_M28265_IG03
mov eax, dword ptr [rbp-0x18]
cmp eax, 255
ja SHORT G_M28265_IG06
mov eax, eax
mov byte ptr [rbp-0x04], al
- ;; size=182 bbWeight=1 PerfScore 117.08
+ ;; size=177 bbWeight=1 PerfScore 117.58
G_M28265_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov eax, dword ptr [rbp-0x10]
cmp rax, qword ptr [rbp-0x48]
@@ -116,7 +114,7 @@ RWD16 dq	8000000000000000h	; -0
RWD24 dd	4F0BD98Fh ; 2.34629e+09
-; Total bytes of code 293, prolog size 31, PerfScore 147.42, instruction count 75, allocated bytes for code 293 (MethodHash=d26f9196) for method ILGEN_CLASS:ILGEN_METHOD(bool,char,short,int):char (Tier0)
+; Total bytes of code 288, prolog size 31, PerfScore 147.92, instruction count 73, allocated bytes for code 288 (MethodHash=d26f9196) for method ILGEN_CLASS:ILGEN_METHOD(bool,char,short,int):char (Tier0)
; ============================================================
Unwind Info:
```
</div></details>
<details>
<summary><span style="color:green">-2</span> (<span
style="color:green">-4.17%</span>) : 181410.dasm -
ldc_neg_i4._neg:i4_3(int,int):int (MinOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -30,18 +30,17 @@ G_M1458_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
;; size=5 bbWeight=0.50 PerfScore 0.50
G_M1458_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
xor eax, eax
- neg eax
test eax, eax
sete al
movzx rax, al
- ;; size=12 bbWeight=1 PerfScore 2.00
+ ;; size=10 bbWeight=1 PerfScore 1.75
G_M1458_IG05: ; bbWeight=1, epilog, nogc, extend
add rsp, 16
pop rbp
ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 48, prolog size 16, PerfScore 12.00, instruction count 16, allocated bytes for code 48 (MethodHash=0125fa4d) for method ldc_neg_i4._neg:i4_3(int,int):int (MinOpts)
+; Total bytes of code 46, prolog size 16, PerfScore 11.75, instruction count 15, allocated bytes for code 46 (MethodHash=0125fa4d) for method ldc_neg_i4._neg:i4_3(int,int):int (MinOpts)
; ============================================================
Unwind Info:
```
</div></details>
<details>
<summary><span style="color:green">-3</span> (<span
style="color:green">-5.77%</span>) : 181421.dasm -
ldc_neg_i8._neg:i8_3(long,long):int (MinOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -30,18 +30,17 @@ G_M18290_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
;; size=5 bbWeight=0.50 PerfScore 0.50
G_M18290_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
xor eax, eax
- neg rax
test rax, rax
sete al
movzx rax, al
- ;; size=14 bbWeight=1 PerfScore 2.00
+ ;; size=11 bbWeight=1 PerfScore 1.75
G_M18290_IG05: ; bbWeight=1, epilog, nogc, extend
add rsp, 16
pop rbp
ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 52, prolog size 18, PerfScore 12.00, instruction count 16, allocated bytes for code 52 (MethodHash=ff46b88d) for method ldc_neg_i8._neg:i8_3(long,long):int (MinOpts)
+; Total bytes of code 49, prolog size 18, PerfScore 11.75, instruction count 15, allocated bytes for code 49 (MethodHash=ff46b88d) for method ldc_neg_i8._neg:i8_3(long,long):int (MinOpts)
; ============================================================
Unwind Info:
```
</div></details>
</div></details>
<details>
<summary>libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch</summary>
<div style="margin-left:1em">
<details>
<summary><span style="color:green">-2</span> (<span
style="color:green">-0.01%</span>) : 124444.dasm -
System.Data.Tests.DataTableTest2:Select_ByFilter():this
(FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -3246,7 +3246,6 @@ G_M43941_IG102: ; bbWeight=1, gcVars=000000000000000000000000000000000000
G_M43941_IG103: ; bbWeight=4, gcrefRegs=F009 {rax rbx r12 r13 r14 r15}, byrefRegs=0000 {}, byref, isz
mov esi, dword ptr [rbp-0x30]
sub esi, dword ptr [rax+0x08]
- neg esi
je G_M43941_IG96
inc dword ptr [r13+0x14]
mov rdi, gword ptr [r13+0x08]
@@ -3254,7 +3253,7 @@ G_M43941_IG103: ; bbWeight=4, gcrefRegs=F009 {rax rbx r12 r13 r14 r15}, b
mov esi, dword ptr [r13+0x10]
cmp dword ptr [rdi+0x08], esi
jbe SHORT G_M43941_IG106
- ;; size=31 bbWeight=4 PerfScore 65.00
+ ;; size=29 bbWeight=4 PerfScore 64.00
G_M43941_IG104: ; bbWeight=3.05, gcVars=00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002 {V06}, gcrefRegs=F088 {rbx rdi r12 r13 r14 r15}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rax]
; GC ptr vars -{V75}
@@ -6658,7 +6657,7 @@ RWD40 dq	4034000000000000h	; 20
RWD48 dq	4039000000000000h	; 25
-; Total bytes of code 14316, prolog size 28, PerfScore 7866.28, instruction count 3034, allocated bytes for code 14316 (MethodHash=c958545a) for method System.Data.Tests.DataTableTest2:Select_ByFilter():this (FullOpts)
+; Total bytes of code 14314, prolog size 28, PerfScore 7865.28, instruction count 3033, allocated bytes for code 14314 (MethodHash=c958545a) for method System.Data.Tests.DataTableTest2:Select_ByFilter():this (FullOpts)
; ============================================================
Unwind Info:
```
</div></details>
</div></details>
<details>
<summary>libraries_tests.run.linux.x64.Release.mch</summary>
<div style="margin-left:1em">
<details>
<summary><span style="color:green">-4</span> (<span
style="color:green">-0.03%</span>) : 314396.dasm -
System.Data.Tests.DataTableTest2:Select_ByFilter():this (Instrumented
Tier0)</summary>
<div style="margin-left:1em">
```diff
@@ -2199,13 +2199,11 @@ G_M43941_IG57: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
mov ecx, dword ptr [rbp-0x240]
sub ecx, dword ptr [rax]
- mov eax, ecx
- ; byrRegs -[rax]
- neg eax
- test eax, eax
+ test ecx, ecx
je G_M43941_IG56
mov rdi, 0xD1FFAB1E
call CORINFO_HELP_COUNTPROFILE32
+ ; byrRegs -[rax]
; gcr arg pop 0
mov rdi, gword ptr [rbp-0x50]
; gcrRegs +[rdi]
@@ -2215,7 +2213,7 @@ G_M43941_IG57: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
call [<unknown method>]
; gcrRegs -[rsi rdi]
; gcr arg pop 0
- ;; size=309 bbWeight=1 PerfScore 58.00
+ ;; size=305 bbWeight=1 PerfScore 57.50
G_M43941_IG58: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov eax, dword ptr [rbp-0x5E0]
dec eax
@@ -5412,7 +5410,7 @@ RWD08 dq	4034000000000000h	; 20
RWD16 dq	4039000000000000h	; 25
-; Total bytes of code 15982, prolog size 67, PerfScore 3425.70, instruction count 2755, allocated bytes for code 15982 (MethodHash=c958545a) for method System.Data.Tests.DataTableTest2:Select_ByFilter():this (Instrumented Tier0)
+; Total bytes of code 15978, prolog size 67, PerfScore 3425.20, instruction count 2753, allocated bytes for code 15978 (MethodHash=c958545a) for method System.Data.Tests.DataTableTest2:Select_ByFilter():this (Instrumented Tier0)
; ============================================================
Unwind Info:
```
</div></details>
</div></details>
</div></details>
<details>
<summary>Details</summary>
<div style="margin-left:1em">
#### Size improvements/regressions per collection
|Collection|Contexts with diffs|Improvements|Regressions|Same
size|Improvements (bytes)|Regressions (bytes)|
|---|--:|--:|--:|--:|--:|--:|
|benchmarks.run.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
|benchmarks.run_pgo.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
|benchmarks.run_pgo_optrepeat.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
|coreclr_tests.run.linux.x64.checked.mch|23|<span
style="color:green">23</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-110</span>|<span
style="color:red">+0</span>|
|libraries.crossgen2.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
|libraries.pmi.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
|libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch|1|<span
style="color:green">1</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-2</span>|<span
style="color:red">+0</span>|
|libraries_tests.run.linux.x64.Release.mch|1|<span
style="color:green">1</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-4</span>|<span
style="color:red">+0</span>|
|realworld.run.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
|smoke_tests.nativeaot.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
||25|<span style="color:green">25</span>|<span
style="color:red">0</span>|<span style="color:blue">0</span>|<span
style="color:green">-116</span>|<span style="color:red">+0</span>|
---
#### PerfScore improvements/regressions per collection
|Collection|Contexts with diffs|Improvements|Regressions|Same
PerfScore|Improvements (PerfScore)|Regressions (PerfScore)|PerfScore
Overall in FullOpts|
|---|--:|--:|--:|--:|--:|--:|--:|
|benchmarks.run.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|0.00%|0.00%|0.0000%|
|benchmarks.run_pgo.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|0.00%|0.00%|0.0000%|
|benchmarks.run_pgo_optrepeat.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|0.00%|0.00%|0.0000%|
|coreclr_tests.run.linux.x64.checked.mch|23|<span
style="color:green">22</span>|<span style="color:red">1</span>|<span
style="color:blue">0</span>|<span
style="color:green">-15.50%</span>|<span
style="color:red">+0.34%</span>|<span
style="color:green">-0.0017%</span>|
|libraries.crossgen2.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|0.00%|0.00%|0.0000%|
|libraries.pmi.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|0.00%|0.00%|0.0000%|
|libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch|1|<span
style="color:green">1</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span
style="color:green">-0.01%</span>|0.00%|<span
style="color:green">-0.0000%</span>|
|libraries_tests.run.linux.x64.Release.mch|1|<span
style="color:green">1</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span
style="color:green">-0.01%</span>|0.00%|0.0000%|
|realworld.run.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|0.00%|0.00%|0.0000%|
|smoke_tests.nativeaot.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|0.00%|0.00%|0.0000%|
---
#### Context information
|Collection|Diffed contexts|MinOpts|FullOpts|Missed, base|Missed, diff|
|---|--:|--:|--:|--:|--:|
|benchmarks.run.linux.x64.checked.mch|75,913|2,972|72,941|0 (0.00%)|0
(0.00%)|
|benchmarks.run_pgo.linux.x64.checked.mch|122,785|86,206|36,579|0
(0.00%)|0 (0.00%)|
|benchmarks.run_pgo_optrepeat.linux.x64.checked.mch|76,998|2,939|74,059|0
(0.00%)|0 (0.00%)|
|coreclr_tests.run.linux.x64.checked.mch|577,098|358,595|218,503|0
(0.00%)|0 (0.00%)|
|libraries.crossgen2.linux.x64.checked.mch|269,385|20|269,365|0
(0.00%)|0 (0.00%)|
|libraries.pmi.linux.x64.checked.mch|354,706|8|354,698|0 (0.00%)|0
(0.00%)|
|libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch|387,764|23,607|364,157|0
(0.00%)|0 (0.00%)|
|libraries_tests.run.linux.x64.Release.mch|862,114|603,896|258,218|0
(0.00%)|0 (0.00%)|
|realworld.run.linux.x64.checked.mch|29,264|21|29,243|0 (0.00%)|0
(0.00%)|
|smoke_tests.nativeaot.linux.x64.checked.mch|31,522|13|31,509|0
(0.00%)|0 (0.00%)|
||2,787,549|1,078,277|1,709,272|0 (0.00%)|0 (0.00%)|
---
#### jit-analyze output
</div></details>
AndyAyersMS pushed a commit that referenced this pull request May 14, 2026
…128163)
> [!NOTE]
> This PR was authored with assistance from GitHub Copilot.
Fixesdotnet#128044.
## Problem
createdump SIGSEGVs on Linux when generating a Heap-type minidump for a
process running interpreted code. The crash reproduces locally with the
`InterpreterStack` DumpTests debuggee and matches the CI failure that
prompted `<DumpTypes>Full</DumpTypes>` to be added as a temporary
workaround.
The faulting backtrace is:
```
#0 Thread::IsAddressInStack threads.cpp:6741
#1 Thread::EnumMemoryRegionsWorker threads.cpp:6909 (calls IsAddressInStack(currentSP))
#2 Thread::EnumMemoryRegions threads.cpp
#3 ThreadStore::EnumMemoryRegions
#4 ClrDataAccess::EnumMemDumpAllThreadsStack
#5 ClrDataAccess::EnumMemoryRegionsWorkerHeap (HEAP2-only path)
```
## Root cause
`Thread::m_pInterpThreadContext` was declared as a raw
`InterpThreadContext *`. In non-DAC code that's a normal host pointer,
but in
DAC mode the field's value is a target-process address. When
`IsAddressInStack` (a DAC-callable helper) dereferenced
`m_pInterpThreadContext->pStackStart` it read from a target-process
address
as if it were a host address, which faults inside createdump.
## Fix
Change the field type to `PTR_InterpThreadContext` (DPTR), matching the
treatment of other Thread fields like `m_pFrame`. In non-DAC builds
`DPTR(T)` is just `T*`, so there is no overhead or behavior change. In
DAC
builds the read goes through `__DPtr<T>` and marshals correctly from the
target.
Also remove the `<DumpTypes>Full</DumpTypes>` workaround on the
`InterpreterStack` DumpTests debuggee so the Heap path that originally
failed is exercised again.
## Validation
Locally reproduced the original SIGSEGV on Linux x64 with the auto-dump
mechanism (`DOTNET_DbgMiniDumpType=2` + `DOTNET_Interpreter=MethodA`)
running the `InterpreterStack` debuggee. With this fix applied,
createdump
produces a complete Heap dump (~74 MB) instead of crashing.
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

[wasm] Bump chrome for testing - linux: 119.0.6045.159, windows: 119.0.6045.160 - #5

Open
github-actions[bot] wants to merge 1 commit into
mainfrom
update-chrome-version-6917071168
Open

[wasm] Bump chrome for testing - linux: 119.0.6045.159, windows: 119.0.6045.160#5
github-actions[bot] wants to merge 1 commit into
mainfrom
update-chrome-version-6917071168

Conversation

@github-actions

Copy link
Copy Markdown

No description provided.

AndyAyersMS pushed a commit that referenced this pull request Sep 7, 2024
* bug #1: don't allow for values out of the SerializationRecordType enum range
* bug #2: throw SerializationException rather than KeyNotFoundException when the referenced record is missing or it points to a record of different type
* bug #3: throw SerializationException rather than FormatException when it's being thrown by BinaryReader (or sth else that we use)
* bug #4: document the fact that IOException can be thrown
* bug #5: throw SerializationException rather than OverflowException when parsing the decimal fails
* bug #6: 0 and 17 are illegal values for PrimitiveType enum
* bug #7: throw SerializationException when a surrogate character is read (so far an ArgumentException was thrown)
AndyAyersMS pushed a commit that referenced this pull request Mar 24, 2026
i.e. Fold: (-(x)) == 0 -> x == 0
arm64 asmdiffs
Diffs are based on <span style="color:#1460aa">436,095</span> contexts
(<span style="color:#1460aa">26,618</span> MinOpts, <span
style="color:#1460aa">409,477</span> FullOpts).
<details>
<summary>Overall (<span style="color:green">-40</span> bytes)</summary>
<div style="margin-left:1em">
|Collection|Base size (bytes)|Diff size (bytes)|PerfScore in Diffs
|---|--:|--:|--:|
|libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch|183,146,276|<span
style="color:green">-40</span>|<span style="color:green">-0.09%</span>|
|benchmarks.run.linux.arm64.checked.mch|21,285,888|+0|0.00%|
|smoke_tests.nativeaot.linux.arm64.checked.mch|3,003,400|+0|0.00%|
</div></details>
<details>
<summary>FullOpts (<span style="color:green">-40</span> bytes)</summary>
<div style="margin-left:1em">
|Collection|Base size (bytes)|Diff size (bytes)|PerfScore in Diffs
|---|--:|--:|--:|
|libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch|168,630,412|<span
style="color:green">-40</span>|<span style="color:green">-0.09%</span>|
|benchmarks.run.linux.arm64.checked.mch|20,953,436|+0|0.00%|
|smoke_tests.nativeaot.linux.arm64.checked.mch|3,001,776|+0|0.00%|
</div></details>
<details>
<summary>Example diffs</summary>
<div style="margin-left:1em">
<details>
<summary>libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch</summary>
<div style="margin-left:1em">
<details>
<summary><span style="color:green">-4</span> (<span
style="color:green">-1.27%</span>) : 142473.dasm -
System.IO.Pipelines.Tests.BufferSegmentPoolTest:GetSegments(System.IO.Pipelines.ReadResult):System.Collections.Generic.List`1[System.Buffers.ReadOnlySequenceSegment`1[byte]]
(FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -53,8 +53,7 @@ G_M13215_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byre
G_M13215_IG03: ; bbWeight=0.50, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref, isz
asr w2, w2, dotnet#31
lsl w2, w2, #1
- add w0, w2, w0, ASR dotnet#31
- negs w0, w0
+ adds w0, w2, w0, ASR dotnet#31
bne G_M13215_IG04
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL dotnet#16
@@ -76,7 +75,7 @@ G_M13215_IG03: ; bbWeight=0.50, gcrefRegs=80002 {x1 x19}, byrefRegs=0000
mov x19, x0
; gcrRegs +[x19]
b G_M13215_IG05
- ;; size=68 bbWeight=0.50 PerfScore 6.00
+ ;; size=64 bbWeight=0.50 PerfScore 5.75
G_M13215_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x19-x20]
mov x20, xzr
@@ -179,7 +178,7 @@ G_M13215_IG13: ; bbWeight=0, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=00
b G_M13215_IG06
;; size=12 bbWeight=0 PerfScore 0.00
-; Total bytes of code 316, prolog size 16, PerfScore 140.93, instruction count 79, allocated bytes for code 316 (MethodHash=c6bccc60) for method System.IO.Pipelines.Tests.BufferSegmentPoolTest:GetSegments(System.IO.Pipelines.ReadResult):System.Collections.Generic.List`1[System.Buffers.ReadOnlySequenceSegment`1[byte]] (FullOpts)
+; Total bytes of code 312, prolog size 16, PerfScore 140.68, instruction count 78, allocated bytes for code 312 (MethodHash=c6bccc60) for method System.IO.Pipelines.Tests.BufferSegmentPoolTest:GetSegments(System.IO.Pipelines.ReadResult):System.Collections.Generic.List`1[System.Buffers.ReadOnlySequenceSegment`1[byte]] (FullOpts)
; ============================================================
Unwind Info:
@@ -190,7 +189,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 79 (0x0004f) Actual length = 316 (0x00013c)
+ Function Length : 78 (0x0004e) Actual length = 312 (0x000138)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
```
</div></details>
<details>
<summary><span style="color:green">-4</span> (<span
style="color:green">-0.27%</span>) : 162917.dasm -
System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory():this
(FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -531,10 +531,9 @@ G_M17523_IG25: ; bbWeight=1, gcrefRegs=400002 {x1 x22}, byrefRegs=0000 {}
G_M17523_IG26: ; bbWeight=0.50, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref, isz
asr w0, w0, dotnet#31
lsl w0, w0, #1
- add w0, w0, w2, ASR dotnet#31
- negs w0, w0
+ adds w0, w0, w2, ASR dotnet#31
beq G_M17523_IG29
- ;; size=20 bbWeight=0.50 PerfScore 2.25
+ ;; size=16 bbWeight=0.50 PerfScore 2.00
G_M17523_IG27: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x1 x19]
mov w19, wzr
@@ -733,7 +732,7 @@ G_M17523_IG43: ; bbWeight=0.00, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, b
brk #0
;; size=32 bbWeight=0.00 PerfScore 0.00
-; Total bytes of code 1488, prolog size 36, PerfScore 200.96, instruction count 372, allocated bytes for code 1488 (MethodHash=abb9bb8c) for method System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory():this (FullOpts)
+; Total bytes of code 1484, prolog size 36, PerfScore 200.71, instruction count 371, allocated bytes for code 1484 (MethodHash=abb9bb8c) for method System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory():this (FullOpts)
; ============================================================
Unwind Info:
@@ -744,7 +743,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 372 (0x00174) Actual length = 1488 (0x0005d0)
+ Function Length : 371 (0x00173) Actual length = 1484 (0x0005cc)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
```
</div></details>
<details>
<summary><span style="color:green">-4</span> (<span
style="color:green">-0.26%</span>) : 162915.dasm -
System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory_String():this
(FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -208,7 +208,7 @@
; V197 cse1 [V197,T40] ( 2, 1 ) ref -> x0 "CSE #7: moderate"
; V198 cse2 [V198,T44] ( 2, 1 ) int -> x23 "CSE #4: moderate"
; V199 cse3 [V199,T45] ( 2, 1 ) long -> x1 "CSE #5: moderate"
-; V200 cse4 [V200,T33] ( 3, 1.50) int -> x1 "CSE dotnet#17: moderate"
+; V200 cse4 [V200,T33] ( 3, 1.50) int -> x1 "CSE dotnet#16: moderate"
; V201 rat0 [V201,T01] ( 3, 5.62) byref -> x1 "fgMakeTemp is creating a new local variable"
; V202 rat1 [V202,T07] ( 5, 3.75) ref -> x0 "replacement local"
; V203 rat2 [V203,T37] ( 3, 1.25) long -> x2 "CSE for expectedClsNode"
@@ -623,8 +623,7 @@ G_M55449_IG30: ; bbWeight=1, gcrefRegs=4180002 {x1 x19 x20 x26}, byrefReg
G_M55449_IG31: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
asr w1, w21, dotnet#31
lsl w1, w1, #1
- add w1, w1, w22, ASR dotnet#31
- negs w1, w1
+ adds w1, w1, w22, ASR dotnet#31
bne G_M55449_IG32
mov x1, x19
; gcrRegs +[x1]
@@ -642,7 +641,7 @@ G_M55449_IG31: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=000
; gcrRegs -[x1 x20]
mov w20, #1
b G_M55449_IG33
- ;; size=68 bbWeight=0.50 PerfScore 6.00
+ ;; size=64 bbWeight=0.50 PerfScore 5.75
G_M55449_IG32: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
mov w20, wzr
;; size=4 bbWeight=0.50 PerfScore 0.25
@@ -776,7 +775,7 @@ G_M55449_IG46: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
brk #0
;; size=40 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1516, prolog size 48, PerfScore 174.78, instruction count 379, allocated bytes for code 1516 (MethodHash=a4562766) for method System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory_String():this (FullOpts)
+; Total bytes of code 1512, prolog size 48, PerfScore 174.53, instruction count 378, allocated bytes for code 1512 (MethodHash=a4562766) for method System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory_String():this (FullOpts)
; ============================================================
Unwind Info:
@@ -787,7 +786,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 379 (0x0017b) Actual length = 1516 (0x0005ec)
+ Function Length : 378 (0x0017a) Actual length = 1512 (0x0005e8)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
```
</div></details>
<details>
<summary>+0 (0.00%) : 223365.dasm -
System.Resources.Extensions.DeserializingResourceReader:CompareStringEqualsName(System.String):bool:this
(FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -106,7 +106,7 @@ G_M52056_IG05: ; bbWeight=0.50, gcrefRegs=500000 {x20 x22}, byrefRegs=000
ldr x3, [x3]
blr x3
; gcrRegs -[x0-x1 x20 x22]
- negs w0, w0
+ cmp w0, #0
cset x0, eq
;; size=40 bbWeight=0.50 PerfScore 4.25
G_M52056_IG06: ; bbWeight=0.50, epilog, nogc, extend
```
</div></details>
<details>
<summary><span style="color:green">-4</span> (<span
style="color:green">-0.02%</span>) : 106573.dasm -
System.Data.Tests.DataTableTest2:Select_ByFilter():this
(FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -3678,8 +3678,7 @@ G_M43941_IG97: ; bbWeight=1, gcVars=0000000000000000000000000000000000000
G_M43941_IG98: ; bbWeight=4, gcrefRegs=4780004 {x2 x19 x20 x21 x22 x26}, byrefRegs=0000 {}, byref, isz
ldr w1, [x2, #0x08]
ldr w0, [fp, #0xD1FFAB1E]	// [V74 tmp49]
- sub w1, w0, w1
- negs w1, w1
+ subs w1, w0, w1
beq G_M43941_IG90
ldp w0, w1, [x22, #0x10]
add w1, w1, #1
@@ -3688,7 +3687,7 @@ G_M43941_IG98: ; bbWeight=4, gcrefRegs=4780004 {x2 x19 x20 x21 x22 x26},
ldr w1, [x2, #0x08]
cmp w1, w0
bls G_M43941_IG100
- ;; size=48 bbWeight=4 PerfScore 76.00
+ ;; size=44 bbWeight=4 PerfScore 74.00
G_M43941_IG99: ; bbWeight=3.03, gcVars=00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002 {V06}, gcrefRegs=4780004 {x2 x19 x20 x21 x22 x26}, byrefRegs=0000 {}, gcvars, byref
; GC ptr vars -{V75}
add w1, w0, #1
@@ -7803,7 +7802,7 @@ RWD00 dq	00740053002D0031h, 0067006E00690072h
RWD16 dq	007200740053002Dh, 00310067006E0069h
-; Total bytes of code 18184, prolog size 44, PerfScore 10435.99, instruction count 4546, allocated bytes for code 18184 (MethodHash=c958545a) for method System.Data.Tests.DataTableTest2:Select_ByFilter():this (FullOpts)
+; Total bytes of code 18180, prolog size 44, PerfScore 10433.99, instruction count 4545, allocated bytes for code 18180 (MethodHash=c958545a) for method System.Data.Tests.DataTableTest2:Select_ByFilter():this (FullOpts)
; ============================================================
Unwind Info:
@@ -7814,7 +7813,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 4130 (0x01022) Actual length = 16520 (0x004088)
+ Function Length : 4129 (0x01021) Actual length = 16516 (0x004084)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
```
</div></details>
<details>
<summary><span style="color:green">-4</span> (<span
style="color:green">-0.16%</span>) : 141855.dasm -
System.IO.Pipelines.Tests.PipePoolTests:GetMemoryOverMaxPoolSizeAllocatesArray():this
(FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -595,8 +595,7 @@ G_M36412_IG24: ; bbWeight=1, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefReg
G_M36412_IG25: ; bbWeight=0.50, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
asr w1, w24, dotnet#31
lsl w1, w1, #1
- add w1, w1, w25, ASR dotnet#31
- negs w1, w1
+ adds w1, w1, w25, ASR dotnet#31
bne G_M36412_IG26
mov x1, x20
; gcrRegs +[x1]
@@ -618,7 +617,7 @@ G_M36412_IG25: ; bbWeight=0.50, gcrefRegs=B80000 {x19 x20 x21 x23}, byref
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
b G_M36412_IG27
- ;; size=68 bbWeight=0.50 PerfScore 6.00
+ ;; size=64 bbWeight=0.50 PerfScore 5.75
G_M36412_IG26: ; bbWeight=0.50, gcrefRegs=A80000 {x19 x21 x23}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x20]
mov x20, xzr
@@ -1232,7 +1231,7 @@ RWD16 dq	<unknown method>
dq	G_M36412_IG51
-; Total bytes of code 2528, prolog size 48, PerfScore 347.37, instruction count 632, allocated bytes for code 2528 (MethodHash=f7d471c3) for method System.IO.Pipelines.Tests.PipePoolTests:GetMemoryOverMaxPoolSizeAllocatesArray():this (FullOpts)
+; Total bytes of code 2524, prolog size 48, PerfScore 347.12, instruction count 631, allocated bytes for code 2524 (MethodHash=f7d471c3) for method System.IO.Pipelines.Tests.PipePoolTests:GetMemoryOverMaxPoolSizeAllocatesArray():this (FullOpts)
; ============================================================
Unwind Info:
@@ -1243,7 +1242,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 591 (0x0024f) Actual length = 2364 (0x00093c)
+ Function Length : 590 (0x0024e) Actual length = 2360 (0x000938)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
```
</div></details>
</div></details>
<details>
<summary>benchmarks.run.linux.arm64.checked.mch</summary>
<div style="margin-left:1em">
<details>
<summary>+0 (0.00%) : 3177.dasm -
System.Resources.ResourceReader:CompareStringEqualsName(System.String):bool:this
(FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -106,7 +106,7 @@ G_M1070_IG05: ; bbWeight=0.50, gcrefRegs=500000 {x20 x22}, byrefRegs=0000
ldr x3, [x3]
blr x3
; gcrRegs -[x0-x1 x20 x22]
- negs w0, w0
+ cmp w0, #0
cset x0, eq
;; size=40 bbWeight=0.50 PerfScore 4.25
G_M1070_IG06: ; bbWeight=0.50, epilog, nogc, extend
```
</div></details>
</div></details>
<details>
<summary>smoke_tests.nativeaot.linux.arm64.checked.mch</summary>
<div style="margin-left:1em">
<details>
<summary>+0 (0.00%) : 18583.dasm -
Generics+TestAsyncGVMScenarios:RunAsync() (FullOpts)</summary>
<div style="margin-left:1em">
No diffs found?
</div></details>
<details>
<summary>+0 (0.00%) : 18730.dasm -
Generics+TestAsyncGVMScenarios:AsyncGvm1[System.__Canon]():this
(FullOpts)</summary>
<div style="margin-left:1em">
No diffs found?
</div></details>
<details>
<summary>+0 (0.00%) : 18865.dasm -
Generics+TestAsyncGVMScenarios:AsyncGvm2[System.__Canon]():this
(FullOpts)</summary>
<div style="margin-left:1em">
No diffs found?
</div></details>
<details>
<summary>+0 (0.00%) : 18873.dasm -
System.Threading.Tasks.Task:get_CompletedTask() (FullOpts)</summary>
<div style="margin-left:1em">
No diffs found?
</div></details>
</div></details>
</div></details>
<details>
<summary>Details</summary>
<div style="margin-left:1em">
#### Size improvements/regressions per collection
|Collection|Contexts with diffs|Improvements|Regressions|Same
size|Improvements (bytes)|Regressions (bytes)|
|---|--:|--:|--:|--:|--:|--:|
|libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch|11|<span
style="color:green">10</span>|<span style="color:red">0</span>|<span
style="color:blue">1</span>|<span style="color:green">-40</span>|<span
style="color:red">+0</span>|
|benchmarks.run.linux.arm64.checked.mch|1|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">1</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
|smoke_tests.nativeaot.linux.arm64.checked.mch|4|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">4</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
||16|<span style="color:green">10</span>|<span
style="color:red">0</span>|<span style="color:blue">6</span>|<span
style="color:green">-40</span>|<span style="color:red">+0</span>|
---
#### PerfScore improvements/regressions per collection
|Collection|Contexts with diffs|Improvements|Regressions|Same
PerfScore|Improvements (PerfScore)|Regressions (PerfScore)|PerfScore
Overall in FullOpts|
|---|--:|--:|--:|--:|--:|--:|--:|
|libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch|11|<span
style="color:green">10</span>|<span style="color:red">0</span>|<span
style="color:blue">1</span>|<span
style="color:green">-0.10%</span>|0.00%|<span
style="color:green">-0.0000%</span>|
|benchmarks.run.linux.arm64.checked.mch|1|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">1</span>|0.00%|0.00%|0.0000%|
|smoke_tests.nativeaot.linux.arm64.checked.mch|4|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">4</span>|0.00%|0.00%|0.0000%|
---
#### Context information
|Collection|Diffed contexts|MinOpts|FullOpts|Missed, base|Missed, diff|
|---|--:|--:|--:|--:|--:|
|libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch|354,001|23,273|330,728|0
(0.00%)|0 (0.00%)|
|benchmarks.run.linux.arm64.checked.mch|63,204|3,337|59,867|0 (0.00%)|0
(0.00%)|
|smoke_tests.nativeaot.linux.arm64.checked.mch|18,890|8|18,882|0
(0.00%)|0 (0.00%)|
||436,095|26,618|409,477|0 (0.00%)|0 (0.00%)|
---
#### jit-analyze output
<details>
<summary>libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch</summary>
<div style="margin-left:1em">
```
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 183146276 (overridden on cmd)
Total bytes of diff: 183146236 (overridden on cmd)
Total bytes of delta: -40 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
```
<details>
<summary>Detail diffs</summary>
```
Top file improvements (bytes):
-4 : 162916.dasm (-0.242% of base)
-4 : 141852.dasm (-0.162% of base)
-4 : 141855.dasm (-0.158% of base)
-4 : 141861.dasm (-0.201% of base)
-4 : 162917.dasm (-0.269% of base)
-4 : 142473.dasm (-1.266% of base)
-4 : 142389.dasm (-0.182% of base)
-4 : 162915.dasm (-0.264% of base)
-4 : 162918.dasm (-0.185% of base)
-4 : 106573.dasm (-0.022% of base)
10 total files with Code Size differences (10 improved, 0 regressed), 1 unchanged.
Top method improvements (bytes):
-4 (-0.022% of base) : 106573.dasm - System.Data.Tests.DataTableTest2:Select_ByFilter():this (FullOpts)
-4 (-1.266% of base) : 142473.dasm - System.IO.Pipelines.Tests.BufferSegmentPoolTest:GetSegments(System.IO.Pipelines.ReadResult):System.Collections.Generic.List`1[System.Buffers.ReadOnlySequenceSegment`1[byte]] (FullOpts)
-4 (-0.182% of base) : 142389.dasm - System.IO.Pipelines.Tests.PipelineReaderWriterFacts:ResetAfterCompleteReaderAndWriterWithoutAdvancingClearsEverything():this (FullOpts)
-4 (-0.162% of base) : 141852.dasm - System.IO.Pipelines.Tests.PipePoolTests:GetMemoryAtMaxPoolSizeAllocatesFromPool():this (FullOpts)
-4 (-0.158% of base) : 141855.dasm - System.IO.Pipelines.Tests.PipePoolTests:GetMemoryOverMaxPoolSizeAllocatesArray():this (FullOpts)
-4 (-0.201% of base) : 141861.dasm - System.IO.Pipelines.Tests.PipePoolTests:WritesToArrayPoolByDefault():this (FullOpts)
-4 (-0.242% of base) : 162916.dasm - System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_IMemoryList_MultiBlock():this (FullOpts)
-4 (-0.185% of base) : 162918.dasm - System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_IMemoryList_SingleBlock():this (FullOpts)
-4 (-0.264% of base) : 162915.dasm - System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory_String():this (FullOpts)
-4 (-0.269% of base) : 162917.dasm - System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory():this (FullOpts)
Top method improvements (percentages):
-4 (-1.266% of base) : 142473.dasm - System.IO.Pipelines.Tests.BufferSegmentPoolTest:GetSegments(System.IO.Pipelines.ReadResult):System.Collections.Generic.List`1[System.Buffers.ReadOnlySequenceSegment`1[byte]] (FullOpts)
-4 (-0.269% of base) : 162917.dasm - System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory():this (FullOpts)
-4 (-0.264% of base) : 162915.dasm - System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory_String():this (FullOpts)
-4 (-0.242% of base) : 162916.dasm - System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_IMemoryList_MultiBlock():this (FullOpts)
-4 (-0.201% of base) : 141861.dasm - System.IO.Pipelines.Tests.PipePoolTests:WritesToArrayPoolByDefault():this (FullOpts)
-4 (-0.185% of base) : 162918.dasm - System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_IMemoryList_SingleBlock():this (FullOpts)
-4 (-0.182% of base) : 142389.dasm - System.IO.Pipelines.Tests.PipelineReaderWriterFacts:ResetAfterCompleteReaderAndWriterWithoutAdvancingClearsEverything():this (FullOpts)
-4 (-0.162% of base) : 141852.dasm - System.IO.Pipelines.Tests.PipePoolTests:GetMemoryAtMaxPoolSizeAllocatesFromPool():this (FullOpts)
-4 (-0.158% of base) : 141855.dasm - System.IO.Pipelines.Tests.PipePoolTests:GetMemoryOverMaxPoolSizeAllocatesArray():this (FullOpts)
-4 (-0.022% of base) : 106573.dasm - System.Data.Tests.DataTableTest2:Select_ByFilter():this (FullOpts)
10 total methods with Code Size differences (10 improved, 0 regressed).
```
</details>
--------------------------------------------------------------------------------
</div></details>
<details>
<summary>benchmarks.run.linux.arm64.checked.mch</summary>
<div style="margin-left:1em">
```
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 21285888 (overridden on cmd)
Total bytes of diff: 21285888 (overridden on cmd)
Total bytes of delta: 0 (0.00 % of base)
```
<details>
<summary>Detail diffs</summary>
```
0 total files with Code Size differences (0 improved, 0 regressed), 1 unchanged.
0 total methods with Code Size differences (0 improved, 0 regressed).
```
</details>
--------------------------------------------------------------------------------
</div></details>
</div></details>
x64 asmdiffs
Diffs are based on <span style="color:#1460aa">2,787,549</span> contexts
(<span style="color:#1460aa">1,078,277</span> MinOpts, <span
style="color:#1460aa">1,709,272</span> FullOpts).
<details>
<summary>Overall (<span style="color:green">-116</span> bytes)</summary>
<div style="margin-left:1em">
|Collection|Base size (bytes)|Diff size (bytes)|PerfScore in Diffs
|---|--:|--:|--:|
|coreclr_tests.run.linux.x64.checked.mch|305,501,642|<span
style="color:green">-110</span>|<span
style="color:green">-14.87%</span>|
|libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch|157,729,192|<span
style="color:green">-2</span>|<span style="color:green">-0.01%</span>|
|libraries_tests.run.linux.x64.Release.mch|392,784,680|<span
style="color:green">-4</span>|<span style="color:green">-0.01%</span>|
</div></details>
<details>
<summary>MinOpts (<span style="color:green">-14</span> bytes)</summary>
<div style="margin-left:1em">
|Collection|Base size (bytes)|Diff size (bytes)|PerfScore in Diffs
|---|--:|--:|--:|
|coreclr_tests.run.linux.x64.checked.mch|197,469,852|<span
style="color:green">-10</span>|<span style="color:green">-1.28%</span>|
|libraries_tests.run.linux.x64.Release.mch|215,792,030|<span
style="color:green">-4</span>|<span style="color:green">-0.01%</span>|
</div></details>
<details>
<summary>FullOpts (<span style="color:green">-102</span>
bytes)</summary>
<div style="margin-left:1em">
|Collection|Base size (bytes)|Diff size (bytes)|PerfScore in Diffs
|---|--:|--:|--:|
|coreclr_tests.run.linux.x64.checked.mch|108,031,790|<span
style="color:green">-100</span>|<span
style="color:green">-16.74%</span>|
|libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch|146,383,976|<span
style="color:green">-2</span>|<span style="color:green">-0.01%</span>|
</div></details>
<details>
<summary>Example diffs</summary>
<div style="margin-left:1em">
<details>
<summary>coreclr_tests.run.linux.x64.checked.mch</summary>
<div style="margin-left:1em">
<details>
<summary><span style="color:green">-8</span> (<span
style="color:green">-29.63%</span>) : 199901.dasm -
TestNeg.Program:NegsBinOpSingleLine(int,int):bool (FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -18,23 +18,19 @@ G_M18888_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=0 bbWeight=1 PerfScore 0.00
G_M18888_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
sar edi, 1
- mov eax, edi
- neg eax
setne al
movzx rax, al
- add esi, esi
- mov ecx, esi
- neg ecx
+ shl esi, 1
setne cl
movzx rcx, cl
or eax, ecx
- ;; size=26 bbWeight=1 PerfScore 4.50
+ ;; size=18 bbWeight=1 PerfScore 3.75
G_M18888_IG03: ; bbWeight=1, epilog, nogc, extend
ret ;; size=1 bbWeight=1 PerfScore 1.00
; END METHOD TestNeg.Program:NegsBinOpSingleLine(int,int):bool
-; Total bytes of code 27, prolog size 0, PerfScore 5.50, instruction count 12, allocated bytes for code 27 (MethodHash=d08ab637) for method TestNeg.Program:NegsBinOpSingleLine(int,int):bool (FullOpts)
+; Total bytes of code 19, prolog size 0, PerfScore 4.75, instruction count 8, allocated bytes for code 19 (MethodHash=d08ab637) for method TestNeg.Program:NegsBinOpSingleLine(int,int):bool (FullOpts)
; ============================================================
Unwind Info:
```
</div></details>
<details>
<summary><span style="color:green">-7</span> (<span
style="color:green">-29.17%</span>) : 199894.dasm -
TestNeg.Program:NegsLSR(uint):int (FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -16,20 +16,17 @@
G_M6300_IG01: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
;; size=0 bbWeight=0.50 PerfScore 0.00
G_M6300_IG02: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov eax, -1
+ mov ecx, 1
shr edi, 3
- mov eax, edi
- mov ecx, -1
- mov edx, 1
- neg rax
- mov eax, edx
- cmove eax, ecx
- ;; size=23 bbWeight=0.50 PerfScore 1.00
+ cmovne eax, ecx
+ ;; size=16 bbWeight=0.50 PerfScore 0.62
G_M6300_IG03: ; bbWeight=0.50, epilog, nogc, extend
ret ;; size=1 bbWeight=0.50 PerfScore 0.50
; END METHOD TestNeg.Program:NegsLSR(uint):int
-; Total bytes of code 24, prolog size 0, PerfScore 1.50, instruction count 8, allocated bytes for code 24 (MethodHash=2a8ee763) for method TestNeg.Program:NegsLSR(uint):int (FullOpts)
+; Total bytes of code 17, prolog size 0, PerfScore 1.12, instruction count 5, allocated bytes for code 17 (MethodHash=2a8ee763) for method TestNeg.Program:NegsLSR(uint):int (FullOpts)
; ============================================================
Unwind Info:
```
</div></details>
<details>
<summary><span style="color:green">-7</span> (<span
style="color:green">-29.17%</span>) : 199896.dasm -
TestNeg.Program:NegsLargeShift(uint):int (FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -16,20 +16,17 @@
G_M11276_IG01: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
;; size=0 bbWeight=0.50 PerfScore 0.00
G_M11276_IG02: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov eax, -1
+ mov ecx, 1
shl edi, 4
- mov eax, edi
- mov ecx, -1
- mov edx, 1
- neg rax
- mov eax, edx
- cmove eax, ecx
- ;; size=23 bbWeight=0.50 PerfScore 1.00
+ cmovne eax, ecx
+ ;; size=16 bbWeight=0.50 PerfScore 0.62
G_M11276_IG03: ; bbWeight=0.50, epilog, nogc, extend
ret ;; size=1 bbWeight=0.50 PerfScore 0.50
; END METHOD TestNeg.Program:NegsLargeShift(uint):int
-; Total bytes of code 24, prolog size 0, PerfScore 1.50, instruction count 8, allocated bytes for code 24 (MethodHash=43eed3f3) for method TestNeg.Program:NegsLargeShift(uint):int (FullOpts)
+; Total bytes of code 17, prolog size 0, PerfScore 1.12, instruction count 5, allocated bytes for code 17 (MethodHash=43eed3f3) for method TestNeg.Program:NegsLargeShift(uint):int (FullOpts)
; ============================================================
Unwind Info:
```
</div></details>
<details>
<summary><span style="color:green">-5</span> (<span
style="color:green">-1.71%</span>) : 531325.dasm -
ILGEN_CLASS:ILGEN_METHOD(bool,char,short,int):char (Tier0)</summary>
<div style="margin-left:1em">
```diff
@@ -74,16 +74,14 @@ G_M28265_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov qword ptr [rbp-0x40], rdx
mov rax, qword ptr [rbp-0x40]
mov qword ptr [rbp-0x48], rax
- mov eax, dword ptr [rbp-0x28]
- neg rax
- test rax, rax
+ cmp dword ptr [rbp-0x28], 0
jne SHORT G_M28265_IG03
mov eax, dword ptr [rbp-0x18]
cmp eax, 255
ja SHORT G_M28265_IG06
mov eax, eax
mov byte ptr [rbp-0x04], al
- ;; size=182 bbWeight=1 PerfScore 117.08
+ ;; size=177 bbWeight=1 PerfScore 117.58
G_M28265_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov eax, dword ptr [rbp-0x10]
cmp rax, qword ptr [rbp-0x48]
@@ -116,7 +114,7 @@ RWD16 dq	8000000000000000h	; -0
RWD24 dd	4F0BD98Fh ; 2.34629e+09
-; Total bytes of code 293, prolog size 31, PerfScore 147.42, instruction count 75, allocated bytes for code 293 (MethodHash=d26f9196) for method ILGEN_CLASS:ILGEN_METHOD(bool,char,short,int):char (Tier0)
+; Total bytes of code 288, prolog size 31, PerfScore 147.92, instruction count 73, allocated bytes for code 288 (MethodHash=d26f9196) for method ILGEN_CLASS:ILGEN_METHOD(bool,char,short,int):char (Tier0)
; ============================================================
Unwind Info:
```
</div></details>
<details>
<summary><span style="color:green">-2</span> (<span
style="color:green">-4.17%</span>) : 181410.dasm -
ldc_neg_i4._neg:i4_3(int,int):int (MinOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -30,18 +30,17 @@ G_M1458_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
;; size=5 bbWeight=0.50 PerfScore 0.50
G_M1458_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
xor eax, eax
- neg eax
test eax, eax
sete al
movzx rax, al
- ;; size=12 bbWeight=1 PerfScore 2.00
+ ;; size=10 bbWeight=1 PerfScore 1.75
G_M1458_IG05: ; bbWeight=1, epilog, nogc, extend
add rsp, 16
pop rbp
ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 48, prolog size 16, PerfScore 12.00, instruction count 16, allocated bytes for code 48 (MethodHash=0125fa4d) for method ldc_neg_i4._neg:i4_3(int,int):int (MinOpts)
+; Total bytes of code 46, prolog size 16, PerfScore 11.75, instruction count 15, allocated bytes for code 46 (MethodHash=0125fa4d) for method ldc_neg_i4._neg:i4_3(int,int):int (MinOpts)
; ============================================================
Unwind Info:
```
</div></details>
<details>
<summary><span style="color:green">-3</span> (<span
style="color:green">-5.77%</span>) : 181421.dasm -
ldc_neg_i8._neg:i8_3(long,long):int (MinOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -30,18 +30,17 @@ G_M18290_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
;; size=5 bbWeight=0.50 PerfScore 0.50
G_M18290_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
xor eax, eax
- neg rax
test rax, rax
sete al
movzx rax, al
- ;; size=14 bbWeight=1 PerfScore 2.00
+ ;; size=11 bbWeight=1 PerfScore 1.75
G_M18290_IG05: ; bbWeight=1, epilog, nogc, extend
add rsp, 16
pop rbp
ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 52, prolog size 18, PerfScore 12.00, instruction count 16, allocated bytes for code 52 (MethodHash=ff46b88d) for method ldc_neg_i8._neg:i8_3(long,long):int (MinOpts)
+; Total bytes of code 49, prolog size 18, PerfScore 11.75, instruction count 15, allocated bytes for code 49 (MethodHash=ff46b88d) for method ldc_neg_i8._neg:i8_3(long,long):int (MinOpts)
; ============================================================
Unwind Info:
```
</div></details>
</div></details>
<details>
<summary>libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch</summary>
<div style="margin-left:1em">
<details>
<summary><span style="color:green">-2</span> (<span
style="color:green">-0.01%</span>) : 124444.dasm -
System.Data.Tests.DataTableTest2:Select_ByFilter():this
(FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -3246,7 +3246,6 @@ G_M43941_IG102: ; bbWeight=1, gcVars=000000000000000000000000000000000000
G_M43941_IG103: ; bbWeight=4, gcrefRegs=F009 {rax rbx r12 r13 r14 r15}, byrefRegs=0000 {}, byref, isz
mov esi, dword ptr [rbp-0x30]
sub esi, dword ptr [rax+0x08]
- neg esi
je G_M43941_IG96
inc dword ptr [r13+0x14]
mov rdi, gword ptr [r13+0x08]
@@ -3254,7 +3253,7 @@ G_M43941_IG103: ; bbWeight=4, gcrefRegs=F009 {rax rbx r12 r13 r14 r15}, b
mov esi, dword ptr [r13+0x10]
cmp dword ptr [rdi+0x08], esi
jbe SHORT G_M43941_IG106
- ;; size=31 bbWeight=4 PerfScore 65.00
+ ;; size=29 bbWeight=4 PerfScore 64.00
G_M43941_IG104: ; bbWeight=3.05, gcVars=00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002 {V06}, gcrefRegs=F088 {rbx rdi r12 r13 r14 r15}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rax]
; GC ptr vars -{V75}
@@ -6658,7 +6657,7 @@ RWD40 dq	4034000000000000h	; 20
RWD48 dq	4039000000000000h	; 25
-; Total bytes of code 14316, prolog size 28, PerfScore 7866.28, instruction count 3034, allocated bytes for code 14316 (MethodHash=c958545a) for method System.Data.Tests.DataTableTest2:Select_ByFilter():this (FullOpts)
+; Total bytes of code 14314, prolog size 28, PerfScore 7865.28, instruction count 3033, allocated bytes for code 14314 (MethodHash=c958545a) for method System.Data.Tests.DataTableTest2:Select_ByFilter():this (FullOpts)
; ============================================================
Unwind Info:
```
</div></details>
</div></details>
<details>
<summary>libraries_tests.run.linux.x64.Release.mch</summary>
<div style="margin-left:1em">
<details>
<summary><span style="color:green">-4</span> (<span
style="color:green">-0.03%</span>) : 314396.dasm -
System.Data.Tests.DataTableTest2:Select_ByFilter():this (Instrumented
Tier0)</summary>
<div style="margin-left:1em">
```diff
@@ -2199,13 +2199,11 @@ G_M43941_IG57: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
mov ecx, dword ptr [rbp-0x240]
sub ecx, dword ptr [rax]
- mov eax, ecx
- ; byrRegs -[rax]
- neg eax
- test eax, eax
+ test ecx, ecx
je G_M43941_IG56
mov rdi, 0xD1FFAB1E
call CORINFO_HELP_COUNTPROFILE32
+ ; byrRegs -[rax]
; gcr arg pop 0
mov rdi, gword ptr [rbp-0x50]
; gcrRegs +[rdi]
@@ -2215,7 +2213,7 @@ G_M43941_IG57: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
call [<unknown method>]
; gcrRegs -[rsi rdi]
; gcr arg pop 0
- ;; size=309 bbWeight=1 PerfScore 58.00
+ ;; size=305 bbWeight=1 PerfScore 57.50
G_M43941_IG58: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov eax, dword ptr [rbp-0x5E0]
dec eax
@@ -5412,7 +5410,7 @@ RWD08 dq	4034000000000000h	; 20
RWD16 dq	4039000000000000h	; 25
-; Total bytes of code 15982, prolog size 67, PerfScore 3425.70, instruction count 2755, allocated bytes for code 15982 (MethodHash=c958545a) for method System.Data.Tests.DataTableTest2:Select_ByFilter():this (Instrumented Tier0)
+; Total bytes of code 15978, prolog size 67, PerfScore 3425.20, instruction count 2753, allocated bytes for code 15978 (MethodHash=c958545a) for method System.Data.Tests.DataTableTest2:Select_ByFilter():this (Instrumented Tier0)
; ============================================================
Unwind Info:
```
</div></details>
</div></details>
</div></details>
<details>
<summary>Details</summary>
<div style="margin-left:1em">
#### Size improvements/regressions per collection
|Collection|Contexts with diffs|Improvements|Regressions|Same
size|Improvements (bytes)|Regressions (bytes)|
|---|--:|--:|--:|--:|--:|--:|
|benchmarks.run.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
|benchmarks.run_pgo.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
|benchmarks.run_pgo_optrepeat.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
|coreclr_tests.run.linux.x64.checked.mch|23|<span
style="color:green">23</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-110</span>|<span
style="color:red">+0</span>|
|libraries.crossgen2.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
|libraries.pmi.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
|libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch|1|<span
style="color:green">1</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-2</span>|<span
style="color:red">+0</span>|
|libraries_tests.run.linux.x64.Release.mch|1|<span
style="color:green">1</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-4</span>|<span
style="color:red">+0</span>|
|realworld.run.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
|smoke_tests.nativeaot.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
||25|<span style="color:green">25</span>|<span
style="color:red">0</span>|<span style="color:blue">0</span>|<span
style="color:green">-116</span>|<span style="color:red">+0</span>|
---
#### PerfScore improvements/regressions per collection
|Collection|Contexts with diffs|Improvements|Regressions|Same
PerfScore|Improvements (PerfScore)|Regressions (PerfScore)|PerfScore
Overall in FullOpts|
|---|--:|--:|--:|--:|--:|--:|--:|
|benchmarks.run.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|0.00%|0.00%|0.0000%|
|benchmarks.run_pgo.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|0.00%|0.00%|0.0000%|
|benchmarks.run_pgo_optrepeat.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|0.00%|0.00%|0.0000%|
|coreclr_tests.run.linux.x64.checked.mch|23|<span
style="color:green">22</span>|<span style="color:red">1</span>|<span
style="color:blue">0</span>|<span
style="color:green">-15.50%</span>|<span
style="color:red">+0.34%</span>|<span
style="color:green">-0.0017%</span>|
|libraries.crossgen2.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|0.00%|0.00%|0.0000%|
|libraries.pmi.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|0.00%|0.00%|0.0000%|
|libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch|1|<span
style="color:green">1</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span
style="color:green">-0.01%</span>|0.00%|<span
style="color:green">-0.0000%</span>|
|libraries_tests.run.linux.x64.Release.mch|1|<span
style="color:green">1</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span
style="color:green">-0.01%</span>|0.00%|0.0000%|
|realworld.run.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|0.00%|0.00%|0.0000%|
|smoke_tests.nativeaot.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|0.00%|0.00%|0.0000%|
---
#### Context information
|Collection|Diffed contexts|MinOpts|FullOpts|Missed, base|Missed, diff|
|---|--:|--:|--:|--:|--:|
|benchmarks.run.linux.x64.checked.mch|75,913|2,972|72,941|0 (0.00%)|0
(0.00%)|
|benchmarks.run_pgo.linux.x64.checked.mch|122,785|86,206|36,579|0
(0.00%)|0 (0.00%)|
|benchmarks.run_pgo_optrepeat.linux.x64.checked.mch|76,998|2,939|74,059|0
(0.00%)|0 (0.00%)|
|coreclr_tests.run.linux.x64.checked.mch|577,098|358,595|218,503|0
(0.00%)|0 (0.00%)|
|libraries.crossgen2.linux.x64.checked.mch|269,385|20|269,365|0
(0.00%)|0 (0.00%)|
|libraries.pmi.linux.x64.checked.mch|354,706|8|354,698|0 (0.00%)|0
(0.00%)|
|libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch|387,764|23,607|364,157|0
(0.00%)|0 (0.00%)|
|libraries_tests.run.linux.x64.Release.mch|862,114|603,896|258,218|0
(0.00%)|0 (0.00%)|
|realworld.run.linux.x64.checked.mch|29,264|21|29,243|0 (0.00%)|0
(0.00%)|
|smoke_tests.nativeaot.linux.x64.checked.mch|31,522|13|31,509|0
(0.00%)|0 (0.00%)|
||2,787,549|1,078,277|1,709,272|0 (0.00%)|0 (0.00%)|
---
#### jit-analyze output
</div></details>
AndyAyersMS pushed a commit that referenced this pull request May 14, 2026
…128163)
> [!NOTE]
> This PR was authored with assistance from GitHub Copilot.
Fixesdotnet#128044.
## Problem
createdump SIGSEGVs on Linux when generating a Heap-type minidump for a
process running interpreted code. The crash reproduces locally with the
`InterpreterStack` DumpTests debuggee and matches the CI failure that
prompted `<DumpTypes>Full</DumpTypes>` to be added as a temporary
workaround.
The faulting backtrace is:
```
#0 Thread::IsAddressInStack threads.cpp:6741
#1 Thread::EnumMemoryRegionsWorker threads.cpp:6909 (calls IsAddressInStack(currentSP))
#2 Thread::EnumMemoryRegions threads.cpp
#3 ThreadStore::EnumMemoryRegions
#4 ClrDataAccess::EnumMemDumpAllThreadsStack
#5 ClrDataAccess::EnumMemoryRegionsWorkerHeap (HEAP2-only path)
```
## Root cause
`Thread::m_pInterpThreadContext` was declared as a raw
`InterpThreadContext *`. In non-DAC code that's a normal host pointer,
but in
DAC mode the field's value is a target-process address. When
`IsAddressInStack` (a DAC-callable helper) dereferenced
`m_pInterpThreadContext->pStackStart` it read from a target-process
address
as if it were a host address, which faults inside createdump.
## Fix
Change the field type to `PTR_InterpThreadContext` (DPTR), matching the
treatment of other Thread fields like `m_pFrame`. In non-DAC builds
`DPTR(T)` is just `T*`, so there is no overhead or behavior change. In
DAC
builds the read goes through `__DPtr<T>` and marshals correctly from the
target.
Also remove the `<DumpTypes>Full</DumpTypes>` workaround on the
`InterpreterStack` DumpTests debuggee so the Heap path that originally
failed is exercised again.
## Validation
Locally reproduced the original SIGSEGV on Linux x64 with the auto-dump
mechanism (`DOTNET_DbgMiniDumpType=2` + `DOTNET_Interpreter=MethodA`)
running the `InterpreterStack` debuggee. With this fix applied,
createdump
produces a complete Heap dump (~74 MB) instead of crashing.
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

[wasm] Bump chrome for testing - linux: 119.0.6045.159, windows: 119.0.6045.160 - #5

Open
github-actions[bot] wants to merge 1 commit into
mainfrom
update-chrome-version-6917071168
Open

[wasm] Bump chrome for testing - linux: 119.0.6045.159, windows: 119.0.6045.160#5
github-actions[bot] wants to merge 1 commit into
mainfrom
update-chrome-version-6917071168

Conversation

@github-actions

Copy link
Copy Markdown

No description provided.

AndyAyersMS pushed a commit that referenced this pull request Sep 7, 2024
* bug #1: don't allow for values out of the SerializationRecordType enum range
* bug #2: throw SerializationException rather than KeyNotFoundException when the referenced record is missing or it points to a record of different type
* bug #3: throw SerializationException rather than FormatException when it's being thrown by BinaryReader (or sth else that we use)
* bug #4: document the fact that IOException can be thrown
* bug #5: throw SerializationException rather than OverflowException when parsing the decimal fails
* bug #6: 0 and 17 are illegal values for PrimitiveType enum
* bug #7: throw SerializationException when a surrogate character is read (so far an ArgumentException was thrown)
AndyAyersMS pushed a commit that referenced this pull request Mar 24, 2026
i.e. Fold: (-(x)) == 0 -> x == 0
arm64 asmdiffs
Diffs are based on <span style="color:#1460aa">436,095</span> contexts
(<span style="color:#1460aa">26,618</span> MinOpts, <span
style="color:#1460aa">409,477</span> FullOpts).
<details>
<summary>Overall (<span style="color:green">-40</span> bytes)</summary>
<div style="margin-left:1em">
|Collection|Base size (bytes)|Diff size (bytes)|PerfScore in Diffs
|---|--:|--:|--:|
|libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch|183,146,276|<span
style="color:green">-40</span>|<span style="color:green">-0.09%</span>|
|benchmarks.run.linux.arm64.checked.mch|21,285,888|+0|0.00%|
|smoke_tests.nativeaot.linux.arm64.checked.mch|3,003,400|+0|0.00%|
</div></details>
<details>
<summary>FullOpts (<span style="color:green">-40</span> bytes)</summary>
<div style="margin-left:1em">
|Collection|Base size (bytes)|Diff size (bytes)|PerfScore in Diffs
|---|--:|--:|--:|
|libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch|168,630,412|<span
style="color:green">-40</span>|<span style="color:green">-0.09%</span>|
|benchmarks.run.linux.arm64.checked.mch|20,953,436|+0|0.00%|
|smoke_tests.nativeaot.linux.arm64.checked.mch|3,001,776|+0|0.00%|
</div></details>
<details>
<summary>Example diffs</summary>
<div style="margin-left:1em">
<details>
<summary>libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch</summary>
<div style="margin-left:1em">
<details>
<summary><span style="color:green">-4</span> (<span
style="color:green">-1.27%</span>) : 142473.dasm -
System.IO.Pipelines.Tests.BufferSegmentPoolTest:GetSegments(System.IO.Pipelines.ReadResult):System.Collections.Generic.List`1[System.Buffers.ReadOnlySequenceSegment`1[byte]]
(FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -53,8 +53,7 @@ G_M13215_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byre
G_M13215_IG03: ; bbWeight=0.50, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref, isz
asr w2, w2, dotnet#31
lsl w2, w2, #1
- add w0, w2, w0, ASR dotnet#31
- negs w0, w0
+ adds w0, w2, w0, ASR dotnet#31
bne G_M13215_IG04
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL dotnet#16
@@ -76,7 +75,7 @@ G_M13215_IG03: ; bbWeight=0.50, gcrefRegs=80002 {x1 x19}, byrefRegs=0000
mov x19, x0
; gcrRegs +[x19]
b G_M13215_IG05
- ;; size=68 bbWeight=0.50 PerfScore 6.00
+ ;; size=64 bbWeight=0.50 PerfScore 5.75
G_M13215_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x19-x20]
mov x20, xzr
@@ -179,7 +178,7 @@ G_M13215_IG13: ; bbWeight=0, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=00
b G_M13215_IG06
;; size=12 bbWeight=0 PerfScore 0.00
-; Total bytes of code 316, prolog size 16, PerfScore 140.93, instruction count 79, allocated bytes for code 316 (MethodHash=c6bccc60) for method System.IO.Pipelines.Tests.BufferSegmentPoolTest:GetSegments(System.IO.Pipelines.ReadResult):System.Collections.Generic.List`1[System.Buffers.ReadOnlySequenceSegment`1[byte]] (FullOpts)
+; Total bytes of code 312, prolog size 16, PerfScore 140.68, instruction count 78, allocated bytes for code 312 (MethodHash=c6bccc60) for method System.IO.Pipelines.Tests.BufferSegmentPoolTest:GetSegments(System.IO.Pipelines.ReadResult):System.Collections.Generic.List`1[System.Buffers.ReadOnlySequenceSegment`1[byte]] (FullOpts)
; ============================================================
Unwind Info:
@@ -190,7 +189,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 79 (0x0004f) Actual length = 316 (0x00013c)
+ Function Length : 78 (0x0004e) Actual length = 312 (0x000138)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
```
</div></details>
<details>
<summary><span style="color:green">-4</span> (<span
style="color:green">-0.27%</span>) : 162917.dasm -
System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory():this
(FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -531,10 +531,9 @@ G_M17523_IG25: ; bbWeight=1, gcrefRegs=400002 {x1 x22}, byrefRegs=0000 {}
G_M17523_IG26: ; bbWeight=0.50, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref, isz
asr w0, w0, dotnet#31
lsl w0, w0, #1
- add w0, w0, w2, ASR dotnet#31
- negs w0, w0
+ adds w0, w0, w2, ASR dotnet#31
beq G_M17523_IG29
- ;; size=20 bbWeight=0.50 PerfScore 2.25
+ ;; size=16 bbWeight=0.50 PerfScore 2.00
G_M17523_IG27: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x1 x19]
mov w19, wzr
@@ -733,7 +732,7 @@ G_M17523_IG43: ; bbWeight=0.00, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, b
brk #0
;; size=32 bbWeight=0.00 PerfScore 0.00
-; Total bytes of code 1488, prolog size 36, PerfScore 200.96, instruction count 372, allocated bytes for code 1488 (MethodHash=abb9bb8c) for method System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory():this (FullOpts)
+; Total bytes of code 1484, prolog size 36, PerfScore 200.71, instruction count 371, allocated bytes for code 1484 (MethodHash=abb9bb8c) for method System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory():this (FullOpts)
; ============================================================
Unwind Info:
@@ -744,7 +743,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 372 (0x00174) Actual length = 1488 (0x0005d0)
+ Function Length : 371 (0x00173) Actual length = 1484 (0x0005cc)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
```
</div></details>
<details>
<summary><span style="color:green">-4</span> (<span
style="color:green">-0.26%</span>) : 162915.dasm -
System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory_String():this
(FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -208,7 +208,7 @@
; V197 cse1 [V197,T40] ( 2, 1 ) ref -> x0 "CSE #7: moderate"
; V198 cse2 [V198,T44] ( 2, 1 ) int -> x23 "CSE #4: moderate"
; V199 cse3 [V199,T45] ( 2, 1 ) long -> x1 "CSE #5: moderate"
-; V200 cse4 [V200,T33] ( 3, 1.50) int -> x1 "CSE dotnet#17: moderate"
+; V200 cse4 [V200,T33] ( 3, 1.50) int -> x1 "CSE dotnet#16: moderate"
; V201 rat0 [V201,T01] ( 3, 5.62) byref -> x1 "fgMakeTemp is creating a new local variable"
; V202 rat1 [V202,T07] ( 5, 3.75) ref -> x0 "replacement local"
; V203 rat2 [V203,T37] ( 3, 1.25) long -> x2 "CSE for expectedClsNode"
@@ -623,8 +623,7 @@ G_M55449_IG30: ; bbWeight=1, gcrefRegs=4180002 {x1 x19 x20 x26}, byrefReg
G_M55449_IG31: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
asr w1, w21, dotnet#31
lsl w1, w1, #1
- add w1, w1, w22, ASR dotnet#31
- negs w1, w1
+ adds w1, w1, w22, ASR dotnet#31
bne G_M55449_IG32
mov x1, x19
; gcrRegs +[x1]
@@ -642,7 +641,7 @@ G_M55449_IG31: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=000
; gcrRegs -[x1 x20]
mov w20, #1
b G_M55449_IG33
- ;; size=68 bbWeight=0.50 PerfScore 6.00
+ ;; size=64 bbWeight=0.50 PerfScore 5.75
G_M55449_IG32: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
mov w20, wzr
;; size=4 bbWeight=0.50 PerfScore 0.25
@@ -776,7 +775,7 @@ G_M55449_IG46: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
brk #0
;; size=40 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1516, prolog size 48, PerfScore 174.78, instruction count 379, allocated bytes for code 1516 (MethodHash=a4562766) for method System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory_String():this (FullOpts)
+; Total bytes of code 1512, prolog size 48, PerfScore 174.53, instruction count 378, allocated bytes for code 1512 (MethodHash=a4562766) for method System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory_String():this (FullOpts)
; ============================================================
Unwind Info:
@@ -787,7 +786,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 379 (0x0017b) Actual length = 1516 (0x0005ec)
+ Function Length : 378 (0x0017a) Actual length = 1512 (0x0005e8)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
```
</div></details>
<details>
<summary>+0 (0.00%) : 223365.dasm -
System.Resources.Extensions.DeserializingResourceReader:CompareStringEqualsName(System.String):bool:this
(FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -106,7 +106,7 @@ G_M52056_IG05: ; bbWeight=0.50, gcrefRegs=500000 {x20 x22}, byrefRegs=000
ldr x3, [x3]
blr x3
; gcrRegs -[x0-x1 x20 x22]
- negs w0, w0
+ cmp w0, #0
cset x0, eq
;; size=40 bbWeight=0.50 PerfScore 4.25
G_M52056_IG06: ; bbWeight=0.50, epilog, nogc, extend
```
</div></details>
<details>
<summary><span style="color:green">-4</span> (<span
style="color:green">-0.02%</span>) : 106573.dasm -
System.Data.Tests.DataTableTest2:Select_ByFilter():this
(FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -3678,8 +3678,7 @@ G_M43941_IG97: ; bbWeight=1, gcVars=0000000000000000000000000000000000000
G_M43941_IG98: ; bbWeight=4, gcrefRegs=4780004 {x2 x19 x20 x21 x22 x26}, byrefRegs=0000 {}, byref, isz
ldr w1, [x2, #0x08]
ldr w0, [fp, #0xD1FFAB1E]	// [V74 tmp49]
- sub w1, w0, w1
- negs w1, w1
+ subs w1, w0, w1
beq G_M43941_IG90
ldp w0, w1, [x22, #0x10]
add w1, w1, #1
@@ -3688,7 +3687,7 @@ G_M43941_IG98: ; bbWeight=4, gcrefRegs=4780004 {x2 x19 x20 x21 x22 x26},
ldr w1, [x2, #0x08]
cmp w1, w0
bls G_M43941_IG100
- ;; size=48 bbWeight=4 PerfScore 76.00
+ ;; size=44 bbWeight=4 PerfScore 74.00
G_M43941_IG99: ; bbWeight=3.03, gcVars=00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002 {V06}, gcrefRegs=4780004 {x2 x19 x20 x21 x22 x26}, byrefRegs=0000 {}, gcvars, byref
; GC ptr vars -{V75}
add w1, w0, #1
@@ -7803,7 +7802,7 @@ RWD00 dq	00740053002D0031h, 0067006E00690072h
RWD16 dq	007200740053002Dh, 00310067006E0069h
-; Total bytes of code 18184, prolog size 44, PerfScore 10435.99, instruction count 4546, allocated bytes for code 18184 (MethodHash=c958545a) for method System.Data.Tests.DataTableTest2:Select_ByFilter():this (FullOpts)
+; Total bytes of code 18180, prolog size 44, PerfScore 10433.99, instruction count 4545, allocated bytes for code 18180 (MethodHash=c958545a) for method System.Data.Tests.DataTableTest2:Select_ByFilter():this (FullOpts)
; ============================================================
Unwind Info:
@@ -7814,7 +7813,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 4130 (0x01022) Actual length = 16520 (0x004088)
+ Function Length : 4129 (0x01021) Actual length = 16516 (0x004084)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
```
</div></details>
<details>
<summary><span style="color:green">-4</span> (<span
style="color:green">-0.16%</span>) : 141855.dasm -
System.IO.Pipelines.Tests.PipePoolTests:GetMemoryOverMaxPoolSizeAllocatesArray():this
(FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -595,8 +595,7 @@ G_M36412_IG24: ; bbWeight=1, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefReg
G_M36412_IG25: ; bbWeight=0.50, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
asr w1, w24, dotnet#31
lsl w1, w1, #1
- add w1, w1, w25, ASR dotnet#31
- negs w1, w1
+ adds w1, w1, w25, ASR dotnet#31
bne G_M36412_IG26
mov x1, x20
; gcrRegs +[x1]
@@ -618,7 +617,7 @@ G_M36412_IG25: ; bbWeight=0.50, gcrefRegs=B80000 {x19 x20 x21 x23}, byref
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
b G_M36412_IG27
- ;; size=68 bbWeight=0.50 PerfScore 6.00
+ ;; size=64 bbWeight=0.50 PerfScore 5.75
G_M36412_IG26: ; bbWeight=0.50, gcrefRegs=A80000 {x19 x21 x23}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x20]
mov x20, xzr
@@ -1232,7 +1231,7 @@ RWD16 dq	<unknown method>
dq	G_M36412_IG51
-; Total bytes of code 2528, prolog size 48, PerfScore 347.37, instruction count 632, allocated bytes for code 2528 (MethodHash=f7d471c3) for method System.IO.Pipelines.Tests.PipePoolTests:GetMemoryOverMaxPoolSizeAllocatesArray():this (FullOpts)
+; Total bytes of code 2524, prolog size 48, PerfScore 347.12, instruction count 631, allocated bytes for code 2524 (MethodHash=f7d471c3) for method System.IO.Pipelines.Tests.PipePoolTests:GetMemoryOverMaxPoolSizeAllocatesArray():this (FullOpts)
; ============================================================
Unwind Info:
@@ -1243,7 +1242,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 591 (0x0024f) Actual length = 2364 (0x00093c)
+ Function Length : 590 (0x0024e) Actual length = 2360 (0x000938)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
```
</div></details>
</div></details>
<details>
<summary>benchmarks.run.linux.arm64.checked.mch</summary>
<div style="margin-left:1em">
<details>
<summary>+0 (0.00%) : 3177.dasm -
System.Resources.ResourceReader:CompareStringEqualsName(System.String):bool:this
(FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -106,7 +106,7 @@ G_M1070_IG05: ; bbWeight=0.50, gcrefRegs=500000 {x20 x22}, byrefRegs=0000
ldr x3, [x3]
blr x3
; gcrRegs -[x0-x1 x20 x22]
- negs w0, w0
+ cmp w0, #0
cset x0, eq
;; size=40 bbWeight=0.50 PerfScore 4.25
G_M1070_IG06: ; bbWeight=0.50, epilog, nogc, extend
```
</div></details>
</div></details>
<details>
<summary>smoke_tests.nativeaot.linux.arm64.checked.mch</summary>
<div style="margin-left:1em">
<details>
<summary>+0 (0.00%) : 18583.dasm -
Generics+TestAsyncGVMScenarios:RunAsync() (FullOpts)</summary>
<div style="margin-left:1em">
No diffs found?
</div></details>
<details>
<summary>+0 (0.00%) : 18730.dasm -
Generics+TestAsyncGVMScenarios:AsyncGvm1[System.__Canon]():this
(FullOpts)</summary>
<div style="margin-left:1em">
No diffs found?
</div></details>
<details>
<summary>+0 (0.00%) : 18865.dasm -
Generics+TestAsyncGVMScenarios:AsyncGvm2[System.__Canon]():this
(FullOpts)</summary>
<div style="margin-left:1em">
No diffs found?
</div></details>
<details>
<summary>+0 (0.00%) : 18873.dasm -
System.Threading.Tasks.Task:get_CompletedTask() (FullOpts)</summary>
<div style="margin-left:1em">
No diffs found?
</div></details>
</div></details>
</div></details>
<details>
<summary>Details</summary>
<div style="margin-left:1em">
#### Size improvements/regressions per collection
|Collection|Contexts with diffs|Improvements|Regressions|Same
size|Improvements (bytes)|Regressions (bytes)|
|---|--:|--:|--:|--:|--:|--:|
|libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch|11|<span
style="color:green">10</span>|<span style="color:red">0</span>|<span
style="color:blue">1</span>|<span style="color:green">-40</span>|<span
style="color:red">+0</span>|
|benchmarks.run.linux.arm64.checked.mch|1|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">1</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
|smoke_tests.nativeaot.linux.arm64.checked.mch|4|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">4</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
||16|<span style="color:green">10</span>|<span
style="color:red">0</span>|<span style="color:blue">6</span>|<span
style="color:green">-40</span>|<span style="color:red">+0</span>|
---
#### PerfScore improvements/regressions per collection
|Collection|Contexts with diffs|Improvements|Regressions|Same
PerfScore|Improvements (PerfScore)|Regressions (PerfScore)|PerfScore
Overall in FullOpts|
|---|--:|--:|--:|--:|--:|--:|--:|
|libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch|11|<span
style="color:green">10</span>|<span style="color:red">0</span>|<span
style="color:blue">1</span>|<span
style="color:green">-0.10%</span>|0.00%|<span
style="color:green">-0.0000%</span>|
|benchmarks.run.linux.arm64.checked.mch|1|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">1</span>|0.00%|0.00%|0.0000%|
|smoke_tests.nativeaot.linux.arm64.checked.mch|4|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">4</span>|0.00%|0.00%|0.0000%|
---
#### Context information
|Collection|Diffed contexts|MinOpts|FullOpts|Missed, base|Missed, diff|
|---|--:|--:|--:|--:|--:|
|libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch|354,001|23,273|330,728|0
(0.00%)|0 (0.00%)|
|benchmarks.run.linux.arm64.checked.mch|63,204|3,337|59,867|0 (0.00%)|0
(0.00%)|
|smoke_tests.nativeaot.linux.arm64.checked.mch|18,890|8|18,882|0
(0.00%)|0 (0.00%)|
||436,095|26,618|409,477|0 (0.00%)|0 (0.00%)|
---
#### jit-analyze output
<details>
<summary>libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch</summary>
<div style="margin-left:1em">
```
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 183146276 (overridden on cmd)
Total bytes of diff: 183146236 (overridden on cmd)
Total bytes of delta: -40 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
```
<details>
<summary>Detail diffs</summary>
```
Top file improvements (bytes):
-4 : 162916.dasm (-0.242% of base)
-4 : 141852.dasm (-0.162% of base)
-4 : 141855.dasm (-0.158% of base)
-4 : 141861.dasm (-0.201% of base)
-4 : 162917.dasm (-0.269% of base)
-4 : 142473.dasm (-1.266% of base)
-4 : 142389.dasm (-0.182% of base)
-4 : 162915.dasm (-0.264% of base)
-4 : 162918.dasm (-0.185% of base)
-4 : 106573.dasm (-0.022% of base)
10 total files with Code Size differences (10 improved, 0 regressed), 1 unchanged.
Top method improvements (bytes):
-4 (-0.022% of base) : 106573.dasm - System.Data.Tests.DataTableTest2:Select_ByFilter():this (FullOpts)
-4 (-1.266% of base) : 142473.dasm - System.IO.Pipelines.Tests.BufferSegmentPoolTest:GetSegments(System.IO.Pipelines.ReadResult):System.Collections.Generic.List`1[System.Buffers.ReadOnlySequenceSegment`1[byte]] (FullOpts)
-4 (-0.182% of base) : 142389.dasm - System.IO.Pipelines.Tests.PipelineReaderWriterFacts:ResetAfterCompleteReaderAndWriterWithoutAdvancingClearsEverything():this (FullOpts)
-4 (-0.162% of base) : 141852.dasm - System.IO.Pipelines.Tests.PipePoolTests:GetMemoryAtMaxPoolSizeAllocatesFromPool():this (FullOpts)
-4 (-0.158% of base) : 141855.dasm - System.IO.Pipelines.Tests.PipePoolTests:GetMemoryOverMaxPoolSizeAllocatesArray():this (FullOpts)
-4 (-0.201% of base) : 141861.dasm - System.IO.Pipelines.Tests.PipePoolTests:WritesToArrayPoolByDefault():this (FullOpts)
-4 (-0.242% of base) : 162916.dasm - System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_IMemoryList_MultiBlock():this (FullOpts)
-4 (-0.185% of base) : 162918.dasm - System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_IMemoryList_SingleBlock():this (FullOpts)
-4 (-0.264% of base) : 162915.dasm - System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory_String():this (FullOpts)
-4 (-0.269% of base) : 162917.dasm - System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory():this (FullOpts)
Top method improvements (percentages):
-4 (-1.266% of base) : 142473.dasm - System.IO.Pipelines.Tests.BufferSegmentPoolTest:GetSegments(System.IO.Pipelines.ReadResult):System.Collections.Generic.List`1[System.Buffers.ReadOnlySequenceSegment`1[byte]] (FullOpts)
-4 (-0.269% of base) : 162917.dasm - System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory():this (FullOpts)
-4 (-0.264% of base) : 162915.dasm - System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory_String():this (FullOpts)
-4 (-0.242% of base) : 162916.dasm - System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_IMemoryList_MultiBlock():this (FullOpts)
-4 (-0.201% of base) : 141861.dasm - System.IO.Pipelines.Tests.PipePoolTests:WritesToArrayPoolByDefault():this (FullOpts)
-4 (-0.185% of base) : 162918.dasm - System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_IMemoryList_SingleBlock():this (FullOpts)
-4 (-0.182% of base) : 142389.dasm - System.IO.Pipelines.Tests.PipelineReaderWriterFacts:ResetAfterCompleteReaderAndWriterWithoutAdvancingClearsEverything():this (FullOpts)
-4 (-0.162% of base) : 141852.dasm - System.IO.Pipelines.Tests.PipePoolTests:GetMemoryAtMaxPoolSizeAllocatesFromPool():this (FullOpts)
-4 (-0.158% of base) : 141855.dasm - System.IO.Pipelines.Tests.PipePoolTests:GetMemoryOverMaxPoolSizeAllocatesArray():this (FullOpts)
-4 (-0.022% of base) : 106573.dasm - System.Data.Tests.DataTableTest2:Select_ByFilter():this (FullOpts)
10 total methods with Code Size differences (10 improved, 0 regressed).
```
</details>
--------------------------------------------------------------------------------
</div></details>
<details>
<summary>benchmarks.run.linux.arm64.checked.mch</summary>
<div style="margin-left:1em">
```
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 21285888 (overridden on cmd)
Total bytes of diff: 21285888 (overridden on cmd)
Total bytes of delta: 0 (0.00 % of base)
```
<details>
<summary>Detail diffs</summary>
```
0 total files with Code Size differences (0 improved, 0 regressed), 1 unchanged.
0 total methods with Code Size differences (0 improved, 0 regressed).
```
</details>
--------------------------------------------------------------------------------
</div></details>
</div></details>
x64 asmdiffs
Diffs are based on <span style="color:#1460aa">2,787,549</span> contexts
(<span style="color:#1460aa">1,078,277</span> MinOpts, <span
style="color:#1460aa">1,709,272</span> FullOpts).
<details>
<summary>Overall (<span style="color:green">-116</span> bytes)</summary>
<div style="margin-left:1em">
|Collection|Base size (bytes)|Diff size (bytes)|PerfScore in Diffs
|---|--:|--:|--:|
|coreclr_tests.run.linux.x64.checked.mch|305,501,642|<span
style="color:green">-110</span>|<span
style="color:green">-14.87%</span>|
|libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch|157,729,192|<span
style="color:green">-2</span>|<span style="color:green">-0.01%</span>|
|libraries_tests.run.linux.x64.Release.mch|392,784,680|<span
style="color:green">-4</span>|<span style="color:green">-0.01%</span>|
</div></details>
<details>
<summary>MinOpts (<span style="color:green">-14</span> bytes)</summary>
<div style="margin-left:1em">
|Collection|Base size (bytes)|Diff size (bytes)|PerfScore in Diffs
|---|--:|--:|--:|
|coreclr_tests.run.linux.x64.checked.mch|197,469,852|<span
style="color:green">-10</span>|<span style="color:green">-1.28%</span>|
|libraries_tests.run.linux.x64.Release.mch|215,792,030|<span
style="color:green">-4</span>|<span style="color:green">-0.01%</span>|
</div></details>
<details>
<summary>FullOpts (<span style="color:green">-102</span>
bytes)</summary>
<div style="margin-left:1em">
|Collection|Base size (bytes)|Diff size (bytes)|PerfScore in Diffs
|---|--:|--:|--:|
|coreclr_tests.run.linux.x64.checked.mch|108,031,790|<span
style="color:green">-100</span>|<span
style="color:green">-16.74%</span>|
|libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch|146,383,976|<span
style="color:green">-2</span>|<span style="color:green">-0.01%</span>|
</div></details>
<details>
<summary>Example diffs</summary>
<div style="margin-left:1em">
<details>
<summary>coreclr_tests.run.linux.x64.checked.mch</summary>
<div style="margin-left:1em">
<details>
<summary><span style="color:green">-8</span> (<span
style="color:green">-29.63%</span>) : 199901.dasm -
TestNeg.Program:NegsBinOpSingleLine(int,int):bool (FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -18,23 +18,19 @@ G_M18888_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=0 bbWeight=1 PerfScore 0.00
G_M18888_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
sar edi, 1
- mov eax, edi
- neg eax
setne al
movzx rax, al
- add esi, esi
- mov ecx, esi
- neg ecx
+ shl esi, 1
setne cl
movzx rcx, cl
or eax, ecx
- ;; size=26 bbWeight=1 PerfScore 4.50
+ ;; size=18 bbWeight=1 PerfScore 3.75
G_M18888_IG03: ; bbWeight=1, epilog, nogc, extend
ret ;; size=1 bbWeight=1 PerfScore 1.00
; END METHOD TestNeg.Program:NegsBinOpSingleLine(int,int):bool
-; Total bytes of code 27, prolog size 0, PerfScore 5.50, instruction count 12, allocated bytes for code 27 (MethodHash=d08ab637) for method TestNeg.Program:NegsBinOpSingleLine(int,int):bool (FullOpts)
+; Total bytes of code 19, prolog size 0, PerfScore 4.75, instruction count 8, allocated bytes for code 19 (MethodHash=d08ab637) for method TestNeg.Program:NegsBinOpSingleLine(int,int):bool (FullOpts)
; ============================================================
Unwind Info:
```
</div></details>
<details>
<summary><span style="color:green">-7</span> (<span
style="color:green">-29.17%</span>) : 199894.dasm -
TestNeg.Program:NegsLSR(uint):int (FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -16,20 +16,17 @@
G_M6300_IG01: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
;; size=0 bbWeight=0.50 PerfScore 0.00
G_M6300_IG02: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov eax, -1
+ mov ecx, 1
shr edi, 3
- mov eax, edi
- mov ecx, -1
- mov edx, 1
- neg rax
- mov eax, edx
- cmove eax, ecx
- ;; size=23 bbWeight=0.50 PerfScore 1.00
+ cmovne eax, ecx
+ ;; size=16 bbWeight=0.50 PerfScore 0.62
G_M6300_IG03: ; bbWeight=0.50, epilog, nogc, extend
ret ;; size=1 bbWeight=0.50 PerfScore 0.50
; END METHOD TestNeg.Program:NegsLSR(uint):int
-; Total bytes of code 24, prolog size 0, PerfScore 1.50, instruction count 8, allocated bytes for code 24 (MethodHash=2a8ee763) for method TestNeg.Program:NegsLSR(uint):int (FullOpts)
+; Total bytes of code 17, prolog size 0, PerfScore 1.12, instruction count 5, allocated bytes for code 17 (MethodHash=2a8ee763) for method TestNeg.Program:NegsLSR(uint):int (FullOpts)
; ============================================================
Unwind Info:
```
</div></details>
<details>
<summary><span style="color:green">-7</span> (<span
style="color:green">-29.17%</span>) : 199896.dasm -
TestNeg.Program:NegsLargeShift(uint):int (FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -16,20 +16,17 @@
G_M11276_IG01: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
;; size=0 bbWeight=0.50 PerfScore 0.00
G_M11276_IG02: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov eax, -1
+ mov ecx, 1
shl edi, 4
- mov eax, edi
- mov ecx, -1
- mov edx, 1
- neg rax
- mov eax, edx
- cmove eax, ecx
- ;; size=23 bbWeight=0.50 PerfScore 1.00
+ cmovne eax, ecx
+ ;; size=16 bbWeight=0.50 PerfScore 0.62
G_M11276_IG03: ; bbWeight=0.50, epilog, nogc, extend
ret ;; size=1 bbWeight=0.50 PerfScore 0.50
; END METHOD TestNeg.Program:NegsLargeShift(uint):int
-; Total bytes of code 24, prolog size 0, PerfScore 1.50, instruction count 8, allocated bytes for code 24 (MethodHash=43eed3f3) for method TestNeg.Program:NegsLargeShift(uint):int (FullOpts)
+; Total bytes of code 17, prolog size 0, PerfScore 1.12, instruction count 5, allocated bytes for code 17 (MethodHash=43eed3f3) for method TestNeg.Program:NegsLargeShift(uint):int (FullOpts)
; ============================================================
Unwind Info:
```
</div></details>
<details>
<summary><span style="color:green">-5</span> (<span
style="color:green">-1.71%</span>) : 531325.dasm -
ILGEN_CLASS:ILGEN_METHOD(bool,char,short,int):char (Tier0)</summary>
<div style="margin-left:1em">
```diff
@@ -74,16 +74,14 @@ G_M28265_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov qword ptr [rbp-0x40], rdx
mov rax, qword ptr [rbp-0x40]
mov qword ptr [rbp-0x48], rax
- mov eax, dword ptr [rbp-0x28]
- neg rax
- test rax, rax
+ cmp dword ptr [rbp-0x28], 0
jne SHORT G_M28265_IG03
mov eax, dword ptr [rbp-0x18]
cmp eax, 255
ja SHORT G_M28265_IG06
mov eax, eax
mov byte ptr [rbp-0x04], al
- ;; size=182 bbWeight=1 PerfScore 117.08
+ ;; size=177 bbWeight=1 PerfScore 117.58
G_M28265_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov eax, dword ptr [rbp-0x10]
cmp rax, qword ptr [rbp-0x48]
@@ -116,7 +114,7 @@ RWD16 dq	8000000000000000h	; -0
RWD24 dd	4F0BD98Fh ; 2.34629e+09
-; Total bytes of code 293, prolog size 31, PerfScore 147.42, instruction count 75, allocated bytes for code 293 (MethodHash=d26f9196) for method ILGEN_CLASS:ILGEN_METHOD(bool,char,short,int):char (Tier0)
+; Total bytes of code 288, prolog size 31, PerfScore 147.92, instruction count 73, allocated bytes for code 288 (MethodHash=d26f9196) for method ILGEN_CLASS:ILGEN_METHOD(bool,char,short,int):char (Tier0)
; ============================================================
Unwind Info:
```
</div></details>
<details>
<summary><span style="color:green">-2</span> (<span
style="color:green">-4.17%</span>) : 181410.dasm -
ldc_neg_i4._neg:i4_3(int,int):int (MinOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -30,18 +30,17 @@ G_M1458_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
;; size=5 bbWeight=0.50 PerfScore 0.50
G_M1458_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
xor eax, eax
- neg eax
test eax, eax
sete al
movzx rax, al
- ;; size=12 bbWeight=1 PerfScore 2.00
+ ;; size=10 bbWeight=1 PerfScore 1.75
G_M1458_IG05: ; bbWeight=1, epilog, nogc, extend
add rsp, 16
pop rbp
ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 48, prolog size 16, PerfScore 12.00, instruction count 16, allocated bytes for code 48 (MethodHash=0125fa4d) for method ldc_neg_i4._neg:i4_3(int,int):int (MinOpts)
+; Total bytes of code 46, prolog size 16, PerfScore 11.75, instruction count 15, allocated bytes for code 46 (MethodHash=0125fa4d) for method ldc_neg_i4._neg:i4_3(int,int):int (MinOpts)
; ============================================================
Unwind Info:
```
</div></details>
<details>
<summary><span style="color:green">-3</span> (<span
style="color:green">-5.77%</span>) : 181421.dasm -
ldc_neg_i8._neg:i8_3(long,long):int (MinOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -30,18 +30,17 @@ G_M18290_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
;; size=5 bbWeight=0.50 PerfScore 0.50
G_M18290_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
xor eax, eax
- neg rax
test rax, rax
sete al
movzx rax, al
- ;; size=14 bbWeight=1 PerfScore 2.00
+ ;; size=11 bbWeight=1 PerfScore 1.75
G_M18290_IG05: ; bbWeight=1, epilog, nogc, extend
add rsp, 16
pop rbp
ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 52, prolog size 18, PerfScore 12.00, instruction count 16, allocated bytes for code 52 (MethodHash=ff46b88d) for method ldc_neg_i8._neg:i8_3(long,long):int (MinOpts)
+; Total bytes of code 49, prolog size 18, PerfScore 11.75, instruction count 15, allocated bytes for code 49 (MethodHash=ff46b88d) for method ldc_neg_i8._neg:i8_3(long,long):int (MinOpts)
; ============================================================
Unwind Info:
```
</div></details>
</div></details>
<details>
<summary>libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch</summary>
<div style="margin-left:1em">
<details>
<summary><span style="color:green">-2</span> (<span
style="color:green">-0.01%</span>) : 124444.dasm -
System.Data.Tests.DataTableTest2:Select_ByFilter():this
(FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -3246,7 +3246,6 @@ G_M43941_IG102: ; bbWeight=1, gcVars=000000000000000000000000000000000000
G_M43941_IG103: ; bbWeight=4, gcrefRegs=F009 {rax rbx r12 r13 r14 r15}, byrefRegs=0000 {}, byref, isz
mov esi, dword ptr [rbp-0x30]
sub esi, dword ptr [rax+0x08]
- neg esi
je G_M43941_IG96
inc dword ptr [r13+0x14]
mov rdi, gword ptr [r13+0x08]
@@ -3254,7 +3253,7 @@ G_M43941_IG103: ; bbWeight=4, gcrefRegs=F009 {rax rbx r12 r13 r14 r15}, b
mov esi, dword ptr [r13+0x10]
cmp dword ptr [rdi+0x08], esi
jbe SHORT G_M43941_IG106
- ;; size=31 bbWeight=4 PerfScore 65.00
+ ;; size=29 bbWeight=4 PerfScore 64.00
G_M43941_IG104: ; bbWeight=3.05, gcVars=00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002 {V06}, gcrefRegs=F088 {rbx rdi r12 r13 r14 r15}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rax]
; GC ptr vars -{V75}
@@ -6658,7 +6657,7 @@ RWD40 dq	4034000000000000h	; 20
RWD48 dq	4039000000000000h	; 25
-; Total bytes of code 14316, prolog size 28, PerfScore 7866.28, instruction count 3034, allocated bytes for code 14316 (MethodHash=c958545a) for method System.Data.Tests.DataTableTest2:Select_ByFilter():this (FullOpts)
+; Total bytes of code 14314, prolog size 28, PerfScore 7865.28, instruction count 3033, allocated bytes for code 14314 (MethodHash=c958545a) for method System.Data.Tests.DataTableTest2:Select_ByFilter():this (FullOpts)
; ============================================================
Unwind Info:
```
</div></details>
</div></details>
<details>
<summary>libraries_tests.run.linux.x64.Release.mch</summary>
<div style="margin-left:1em">
<details>
<summary><span style="color:green">-4</span> (<span
style="color:green">-0.03%</span>) : 314396.dasm -
System.Data.Tests.DataTableTest2:Select_ByFilter():this (Instrumented
Tier0)</summary>
<div style="margin-left:1em">
```diff
@@ -2199,13 +2199,11 @@ G_M43941_IG57: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
mov ecx, dword ptr [rbp-0x240]
sub ecx, dword ptr [rax]
- mov eax, ecx
- ; byrRegs -[rax]
- neg eax
- test eax, eax
+ test ecx, ecx
je G_M43941_IG56
mov rdi, 0xD1FFAB1E
call CORINFO_HELP_COUNTPROFILE32
+ ; byrRegs -[rax]
; gcr arg pop 0
mov rdi, gword ptr [rbp-0x50]
; gcrRegs +[rdi]
@@ -2215,7 +2213,7 @@ G_M43941_IG57: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
call [<unknown method>]
; gcrRegs -[rsi rdi]
; gcr arg pop 0
- ;; size=309 bbWeight=1 PerfScore 58.00
+ ;; size=305 bbWeight=1 PerfScore 57.50
G_M43941_IG58: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov eax, dword ptr [rbp-0x5E0]
dec eax
@@ -5412,7 +5410,7 @@ RWD08 dq	4034000000000000h	; 20
RWD16 dq	4039000000000000h	; 25
-; Total bytes of code 15982, prolog size 67, PerfScore 3425.70, instruction count 2755, allocated bytes for code 15982 (MethodHash=c958545a) for method System.Data.Tests.DataTableTest2:Select_ByFilter():this (Instrumented Tier0)
+; Total bytes of code 15978, prolog size 67, PerfScore 3425.20, instruction count 2753, allocated bytes for code 15978 (MethodHash=c958545a) for method System.Data.Tests.DataTableTest2:Select_ByFilter():this (Instrumented Tier0)
; ============================================================
Unwind Info:
```
</div></details>
</div></details>
</div></details>
<details>
<summary>Details</summary>
<div style="margin-left:1em">
#### Size improvements/regressions per collection
|Collection|Contexts with diffs|Improvements|Regressions|Same
size|Improvements (bytes)|Regressions (bytes)|
|---|--:|--:|--:|--:|--:|--:|
|benchmarks.run.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
|benchmarks.run_pgo.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
|benchmarks.run_pgo_optrepeat.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
|coreclr_tests.run.linux.x64.checked.mch|23|<span
style="color:green">23</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-110</span>|<span
style="color:red">+0</span>|
|libraries.crossgen2.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
|libraries.pmi.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
|libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch|1|<span
style="color:green">1</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-2</span>|<span
style="color:red">+0</span>|
|libraries_tests.run.linux.x64.Release.mch|1|<span
style="color:green">1</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-4</span>|<span
style="color:red">+0</span>|
|realworld.run.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
|smoke_tests.nativeaot.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
||25|<span style="color:green">25</span>|<span
style="color:red">0</span>|<span style="color:blue">0</span>|<span
style="color:green">-116</span>|<span style="color:red">+0</span>|
---
#### PerfScore improvements/regressions per collection
|Collection|Contexts with diffs|Improvements|Regressions|Same
PerfScore|Improvements (PerfScore)|Regressions (PerfScore)|PerfScore
Overall in FullOpts|
|---|--:|--:|--:|--:|--:|--:|--:|
|benchmarks.run.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|0.00%|0.00%|0.0000%|
|benchmarks.run_pgo.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|0.00%|0.00%|0.0000%|
|benchmarks.run_pgo_optrepeat.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|0.00%|0.00%|0.0000%|
|coreclr_tests.run.linux.x64.checked.mch|23|<span
style="color:green">22</span>|<span style="color:red">1</span>|<span
style="color:blue">0</span>|<span
style="color:green">-15.50%</span>|<span
style="color:red">+0.34%</span>|<span
style="color:green">-0.0017%</span>|
|libraries.crossgen2.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|0.00%|0.00%|0.0000%|
|libraries.pmi.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|0.00%|0.00%|0.0000%|
|libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch|1|<span
style="color:green">1</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span
style="color:green">-0.01%</span>|0.00%|<span
style="color:green">-0.0000%</span>|
|libraries_tests.run.linux.x64.Release.mch|1|<span
style="color:green">1</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span
style="color:green">-0.01%</span>|0.00%|0.0000%|
|realworld.run.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|0.00%|0.00%|0.0000%|
|smoke_tests.nativeaot.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|0.00%|0.00%|0.0000%|
---
#### Context information
|Collection|Diffed contexts|MinOpts|FullOpts|Missed, base|Missed, diff|
|---|--:|--:|--:|--:|--:|
|benchmarks.run.linux.x64.checked.mch|75,913|2,972|72,941|0 (0.00%)|0
(0.00%)|
|benchmarks.run_pgo.linux.x64.checked.mch|122,785|86,206|36,579|0
(0.00%)|0 (0.00%)|
|benchmarks.run_pgo_optrepeat.linux.x64.checked.mch|76,998|2,939|74,059|0
(0.00%)|0 (0.00%)|
|coreclr_tests.run.linux.x64.checked.mch|577,098|358,595|218,503|0
(0.00%)|0 (0.00%)|
|libraries.crossgen2.linux.x64.checked.mch|269,385|20|269,365|0
(0.00%)|0 (0.00%)|
|libraries.pmi.linux.x64.checked.mch|354,706|8|354,698|0 (0.00%)|0
(0.00%)|
|libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch|387,764|23,607|364,157|0
(0.00%)|0 (0.00%)|
|libraries_tests.run.linux.x64.Release.mch|862,114|603,896|258,218|0
(0.00%)|0 (0.00%)|
|realworld.run.linux.x64.checked.mch|29,264|21|29,243|0 (0.00%)|0
(0.00%)|
|smoke_tests.nativeaot.linux.x64.checked.mch|31,522|13|31,509|0
(0.00%)|0 (0.00%)|
||2,787,549|1,078,277|1,709,272|0 (0.00%)|0 (0.00%)|
---
#### jit-analyze output
</div></details>
AndyAyersMS pushed a commit that referenced this pull request May 14, 2026
…128163)
> [!NOTE]
> This PR was authored with assistance from GitHub Copilot.
Fixesdotnet#128044.
## Problem
createdump SIGSEGVs on Linux when generating a Heap-type minidump for a
process running interpreted code. The crash reproduces locally with the
`InterpreterStack` DumpTests debuggee and matches the CI failure that
prompted `<DumpTypes>Full</DumpTypes>` to be added as a temporary
workaround.
The faulting backtrace is:
```
#0 Thread::IsAddressInStack threads.cpp:6741
#1 Thread::EnumMemoryRegionsWorker threads.cpp:6909 (calls IsAddressInStack(currentSP))
#2 Thread::EnumMemoryRegions threads.cpp
#3 ThreadStore::EnumMemoryRegions
#4 ClrDataAccess::EnumMemDumpAllThreadsStack
#5 ClrDataAccess::EnumMemoryRegionsWorkerHeap (HEAP2-only path)
```
## Root cause
`Thread::m_pInterpThreadContext` was declared as a raw
`InterpThreadContext *`. In non-DAC code that's a normal host pointer,
but in
DAC mode the field's value is a target-process address. When
`IsAddressInStack` (a DAC-callable helper) dereferenced
`m_pInterpThreadContext->pStackStart` it read from a target-process
address
as if it were a host address, which faults inside createdump.
## Fix
Change the field type to `PTR_InterpThreadContext` (DPTR), matching the
treatment of other Thread fields like `m_pFrame`. In non-DAC builds
`DPTR(T)` is just `T*`, so there is no overhead or behavior change. In
DAC
builds the read goes through `__DPtr<T>` and marshals correctly from the
target.
Also remove the `<DumpTypes>Full</DumpTypes>` workaround on the
`InterpreterStack` DumpTests debuggee so the Heap path that originally
failed is exercised again.
## Validation
Locally reproduced the original SIGSEGV on Linux x64 with the auto-dump
mechanism (`DOTNET_DbgMiniDumpType=2` + `DOTNET_Interpreter=MethodA`)
running the `InterpreterStack` debuggee. With this fix applied,
createdump
produces a complete Heap dump (~74 MB) instead of crashing.
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

[wasm] Bump chrome for testing - linux: 119.0.6045.159, windows: 119.0.6045.160 - #5

Open
github-actions[bot] wants to merge 1 commit into
mainfrom
update-chrome-version-6917071168
Open

[wasm] Bump chrome for testing - linux: 119.0.6045.159, windows: 119.0.6045.160#5
github-actions[bot] wants to merge 1 commit into
mainfrom
update-chrome-version-6917071168

Conversation

@github-actions

Copy link
Copy Markdown

No description provided.

AndyAyersMS pushed a commit that referenced this pull request Sep 7, 2024
* bug #1: don't allow for values out of the SerializationRecordType enum range
* bug #2: throw SerializationException rather than KeyNotFoundException when the referenced record is missing or it points to a record of different type
* bug #3: throw SerializationException rather than FormatException when it's being thrown by BinaryReader (or sth else that we use)
* bug #4: document the fact that IOException can be thrown
* bug #5: throw SerializationException rather than OverflowException when parsing the decimal fails
* bug #6: 0 and 17 are illegal values for PrimitiveType enum
* bug #7: throw SerializationException when a surrogate character is read (so far an ArgumentException was thrown)
AndyAyersMS pushed a commit that referenced this pull request Mar 24, 2026
i.e. Fold: (-(x)) == 0 -> x == 0
arm64 asmdiffs
Diffs are based on <span style="color:#1460aa">436,095</span> contexts
(<span style="color:#1460aa">26,618</span> MinOpts, <span
style="color:#1460aa">409,477</span> FullOpts).
<details>
<summary>Overall (<span style="color:green">-40</span> bytes)</summary>
<div style="margin-left:1em">
|Collection|Base size (bytes)|Diff size (bytes)|PerfScore in Diffs
|---|--:|--:|--:|
|libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch|183,146,276|<span
style="color:green">-40</span>|<span style="color:green">-0.09%</span>|
|benchmarks.run.linux.arm64.checked.mch|21,285,888|+0|0.00%|
|smoke_tests.nativeaot.linux.arm64.checked.mch|3,003,400|+0|0.00%|
</div></details>
<details>
<summary>FullOpts (<span style="color:green">-40</span> bytes)</summary>
<div style="margin-left:1em">
|Collection|Base size (bytes)|Diff size (bytes)|PerfScore in Diffs
|---|--:|--:|--:|
|libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch|168,630,412|<span
style="color:green">-40</span>|<span style="color:green">-0.09%</span>|
|benchmarks.run.linux.arm64.checked.mch|20,953,436|+0|0.00%|
|smoke_tests.nativeaot.linux.arm64.checked.mch|3,001,776|+0|0.00%|
</div></details>
<details>
<summary>Example diffs</summary>
<div style="margin-left:1em">
<details>
<summary>libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch</summary>
<div style="margin-left:1em">
<details>
<summary><span style="color:green">-4</span> (<span
style="color:green">-1.27%</span>) : 142473.dasm -
System.IO.Pipelines.Tests.BufferSegmentPoolTest:GetSegments(System.IO.Pipelines.ReadResult):System.Collections.Generic.List`1[System.Buffers.ReadOnlySequenceSegment`1[byte]]
(FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -53,8 +53,7 @@ G_M13215_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byre
G_M13215_IG03: ; bbWeight=0.50, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref, isz
asr w2, w2, dotnet#31
lsl w2, w2, #1
- add w0, w2, w0, ASR dotnet#31
- negs w0, w0
+ adds w0, w2, w0, ASR dotnet#31
bne G_M13215_IG04
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL dotnet#16
@@ -76,7 +75,7 @@ G_M13215_IG03: ; bbWeight=0.50, gcrefRegs=80002 {x1 x19}, byrefRegs=0000
mov x19, x0
; gcrRegs +[x19]
b G_M13215_IG05
- ;; size=68 bbWeight=0.50 PerfScore 6.00
+ ;; size=64 bbWeight=0.50 PerfScore 5.75
G_M13215_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x19-x20]
mov x20, xzr
@@ -179,7 +178,7 @@ G_M13215_IG13: ; bbWeight=0, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=00
b G_M13215_IG06
;; size=12 bbWeight=0 PerfScore 0.00
-; Total bytes of code 316, prolog size 16, PerfScore 140.93, instruction count 79, allocated bytes for code 316 (MethodHash=c6bccc60) for method System.IO.Pipelines.Tests.BufferSegmentPoolTest:GetSegments(System.IO.Pipelines.ReadResult):System.Collections.Generic.List`1[System.Buffers.ReadOnlySequenceSegment`1[byte]] (FullOpts)
+; Total bytes of code 312, prolog size 16, PerfScore 140.68, instruction count 78, allocated bytes for code 312 (MethodHash=c6bccc60) for method System.IO.Pipelines.Tests.BufferSegmentPoolTest:GetSegments(System.IO.Pipelines.ReadResult):System.Collections.Generic.List`1[System.Buffers.ReadOnlySequenceSegment`1[byte]] (FullOpts)
; ============================================================
Unwind Info:
@@ -190,7 +189,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 79 (0x0004f) Actual length = 316 (0x00013c)
+ Function Length : 78 (0x0004e) Actual length = 312 (0x000138)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
```
</div></details>
<details>
<summary><span style="color:green">-4</span> (<span
style="color:green">-0.27%</span>) : 162917.dasm -
System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory():this
(FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -531,10 +531,9 @@ G_M17523_IG25: ; bbWeight=1, gcrefRegs=400002 {x1 x22}, byrefRegs=0000 {}
G_M17523_IG26: ; bbWeight=0.50, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref, isz
asr w0, w0, dotnet#31
lsl w0, w0, #1
- add w0, w0, w2, ASR dotnet#31
- negs w0, w0
+ adds w0, w0, w2, ASR dotnet#31
beq G_M17523_IG29
- ;; size=20 bbWeight=0.50 PerfScore 2.25
+ ;; size=16 bbWeight=0.50 PerfScore 2.00
G_M17523_IG27: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x1 x19]
mov w19, wzr
@@ -733,7 +732,7 @@ G_M17523_IG43: ; bbWeight=0.00, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, b
brk #0
;; size=32 bbWeight=0.00 PerfScore 0.00
-; Total bytes of code 1488, prolog size 36, PerfScore 200.96, instruction count 372, allocated bytes for code 1488 (MethodHash=abb9bb8c) for method System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory():this (FullOpts)
+; Total bytes of code 1484, prolog size 36, PerfScore 200.71, instruction count 371, allocated bytes for code 1484 (MethodHash=abb9bb8c) for method System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory():this (FullOpts)
; ============================================================
Unwind Info:
@@ -744,7 +743,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 372 (0x00174) Actual length = 1488 (0x0005d0)
+ Function Length : 371 (0x00173) Actual length = 1484 (0x0005cc)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
```
</div></details>
<details>
<summary><span style="color:green">-4</span> (<span
style="color:green">-0.26%</span>) : 162915.dasm -
System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory_String():this
(FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -208,7 +208,7 @@
; V197 cse1 [V197,T40] ( 2, 1 ) ref -> x0 "CSE #7: moderate"
; V198 cse2 [V198,T44] ( 2, 1 ) int -> x23 "CSE #4: moderate"
; V199 cse3 [V199,T45] ( 2, 1 ) long -> x1 "CSE #5: moderate"
-; V200 cse4 [V200,T33] ( 3, 1.50) int -> x1 "CSE dotnet#17: moderate"
+; V200 cse4 [V200,T33] ( 3, 1.50) int -> x1 "CSE dotnet#16: moderate"
; V201 rat0 [V201,T01] ( 3, 5.62) byref -> x1 "fgMakeTemp is creating a new local variable"
; V202 rat1 [V202,T07] ( 5, 3.75) ref -> x0 "replacement local"
; V203 rat2 [V203,T37] ( 3, 1.25) long -> x2 "CSE for expectedClsNode"
@@ -623,8 +623,7 @@ G_M55449_IG30: ; bbWeight=1, gcrefRegs=4180002 {x1 x19 x20 x26}, byrefReg
G_M55449_IG31: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
asr w1, w21, dotnet#31
lsl w1, w1, #1
- add w1, w1, w22, ASR dotnet#31
- negs w1, w1
+ adds w1, w1, w22, ASR dotnet#31
bne G_M55449_IG32
mov x1, x19
; gcrRegs +[x1]
@@ -642,7 +641,7 @@ G_M55449_IG31: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=000
; gcrRegs -[x1 x20]
mov w20, #1
b G_M55449_IG33
- ;; size=68 bbWeight=0.50 PerfScore 6.00
+ ;; size=64 bbWeight=0.50 PerfScore 5.75
G_M55449_IG32: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
mov w20, wzr
;; size=4 bbWeight=0.50 PerfScore 0.25
@@ -776,7 +775,7 @@ G_M55449_IG46: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
brk #0
;; size=40 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1516, prolog size 48, PerfScore 174.78, instruction count 379, allocated bytes for code 1516 (MethodHash=a4562766) for method System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory_String():this (FullOpts)
+; Total bytes of code 1512, prolog size 48, PerfScore 174.53, instruction count 378, allocated bytes for code 1512 (MethodHash=a4562766) for method System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory_String():this (FullOpts)
; ============================================================
Unwind Info:
@@ -787,7 +786,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 379 (0x0017b) Actual length = 1516 (0x0005ec)
+ Function Length : 378 (0x0017a) Actual length = 1512 (0x0005e8)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
```
</div></details>
<details>
<summary>+0 (0.00%) : 223365.dasm -
System.Resources.Extensions.DeserializingResourceReader:CompareStringEqualsName(System.String):bool:this
(FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -106,7 +106,7 @@ G_M52056_IG05: ; bbWeight=0.50, gcrefRegs=500000 {x20 x22}, byrefRegs=000
ldr x3, [x3]
blr x3
; gcrRegs -[x0-x1 x20 x22]
- negs w0, w0
+ cmp w0, #0
cset x0, eq
;; size=40 bbWeight=0.50 PerfScore 4.25
G_M52056_IG06: ; bbWeight=0.50, epilog, nogc, extend
```
</div></details>
<details>
<summary><span style="color:green">-4</span> (<span
style="color:green">-0.02%</span>) : 106573.dasm -
System.Data.Tests.DataTableTest2:Select_ByFilter():this
(FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -3678,8 +3678,7 @@ G_M43941_IG97: ; bbWeight=1, gcVars=0000000000000000000000000000000000000
G_M43941_IG98: ; bbWeight=4, gcrefRegs=4780004 {x2 x19 x20 x21 x22 x26}, byrefRegs=0000 {}, byref, isz
ldr w1, [x2, #0x08]
ldr w0, [fp, #0xD1FFAB1E]	// [V74 tmp49]
- sub w1, w0, w1
- negs w1, w1
+ subs w1, w0, w1
beq G_M43941_IG90
ldp w0, w1, [x22, #0x10]
add w1, w1, #1
@@ -3688,7 +3687,7 @@ G_M43941_IG98: ; bbWeight=4, gcrefRegs=4780004 {x2 x19 x20 x21 x22 x26},
ldr w1, [x2, #0x08]
cmp w1, w0
bls G_M43941_IG100
- ;; size=48 bbWeight=4 PerfScore 76.00
+ ;; size=44 bbWeight=4 PerfScore 74.00
G_M43941_IG99: ; bbWeight=3.03, gcVars=00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002 {V06}, gcrefRegs=4780004 {x2 x19 x20 x21 x22 x26}, byrefRegs=0000 {}, gcvars, byref
; GC ptr vars -{V75}
add w1, w0, #1
@@ -7803,7 +7802,7 @@ RWD00 dq	00740053002D0031h, 0067006E00690072h
RWD16 dq	007200740053002Dh, 00310067006E0069h
-; Total bytes of code 18184, prolog size 44, PerfScore 10435.99, instruction count 4546, allocated bytes for code 18184 (MethodHash=c958545a) for method System.Data.Tests.DataTableTest2:Select_ByFilter():this (FullOpts)
+; Total bytes of code 18180, prolog size 44, PerfScore 10433.99, instruction count 4545, allocated bytes for code 18180 (MethodHash=c958545a) for method System.Data.Tests.DataTableTest2:Select_ByFilter():this (FullOpts)
; ============================================================
Unwind Info:
@@ -7814,7 +7813,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 4130 (0x01022) Actual length = 16520 (0x004088)
+ Function Length : 4129 (0x01021) Actual length = 16516 (0x004084)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
```
</div></details>
<details>
<summary><span style="color:green">-4</span> (<span
style="color:green">-0.16%</span>) : 141855.dasm -
System.IO.Pipelines.Tests.PipePoolTests:GetMemoryOverMaxPoolSizeAllocatesArray():this
(FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -595,8 +595,7 @@ G_M36412_IG24: ; bbWeight=1, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefReg
G_M36412_IG25: ; bbWeight=0.50, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
asr w1, w24, dotnet#31
lsl w1, w1, #1
- add w1, w1, w25, ASR dotnet#31
- negs w1, w1
+ adds w1, w1, w25, ASR dotnet#31
bne G_M36412_IG26
mov x1, x20
; gcrRegs +[x1]
@@ -618,7 +617,7 @@ G_M36412_IG25: ; bbWeight=0.50, gcrefRegs=B80000 {x19 x20 x21 x23}, byref
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
b G_M36412_IG27
- ;; size=68 bbWeight=0.50 PerfScore 6.00
+ ;; size=64 bbWeight=0.50 PerfScore 5.75
G_M36412_IG26: ; bbWeight=0.50, gcrefRegs=A80000 {x19 x21 x23}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x20]
mov x20, xzr
@@ -1232,7 +1231,7 @@ RWD16 dq	<unknown method>
dq	G_M36412_IG51
-; Total bytes of code 2528, prolog size 48, PerfScore 347.37, instruction count 632, allocated bytes for code 2528 (MethodHash=f7d471c3) for method System.IO.Pipelines.Tests.PipePoolTests:GetMemoryOverMaxPoolSizeAllocatesArray():this (FullOpts)
+; Total bytes of code 2524, prolog size 48, PerfScore 347.12, instruction count 631, allocated bytes for code 2524 (MethodHash=f7d471c3) for method System.IO.Pipelines.Tests.PipePoolTests:GetMemoryOverMaxPoolSizeAllocatesArray():this (FullOpts)
; ============================================================
Unwind Info:
@@ -1243,7 +1242,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 591 (0x0024f) Actual length = 2364 (0x00093c)
+ Function Length : 590 (0x0024e) Actual length = 2360 (0x000938)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
```
</div></details>
</div></details>
<details>
<summary>benchmarks.run.linux.arm64.checked.mch</summary>
<div style="margin-left:1em">
<details>
<summary>+0 (0.00%) : 3177.dasm -
System.Resources.ResourceReader:CompareStringEqualsName(System.String):bool:this
(FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -106,7 +106,7 @@ G_M1070_IG05: ; bbWeight=0.50, gcrefRegs=500000 {x20 x22}, byrefRegs=0000
ldr x3, [x3]
blr x3
; gcrRegs -[x0-x1 x20 x22]
- negs w0, w0
+ cmp w0, #0
cset x0, eq
;; size=40 bbWeight=0.50 PerfScore 4.25
G_M1070_IG06: ; bbWeight=0.50, epilog, nogc, extend
```
</div></details>
</div></details>
<details>
<summary>smoke_tests.nativeaot.linux.arm64.checked.mch</summary>
<div style="margin-left:1em">
<details>
<summary>+0 (0.00%) : 18583.dasm -
Generics+TestAsyncGVMScenarios:RunAsync() (FullOpts)</summary>
<div style="margin-left:1em">
No diffs found?
</div></details>
<details>
<summary>+0 (0.00%) : 18730.dasm -
Generics+TestAsyncGVMScenarios:AsyncGvm1[System.__Canon]():this
(FullOpts)</summary>
<div style="margin-left:1em">
No diffs found?
</div></details>
<details>
<summary>+0 (0.00%) : 18865.dasm -
Generics+TestAsyncGVMScenarios:AsyncGvm2[System.__Canon]():this
(FullOpts)</summary>
<div style="margin-left:1em">
No diffs found?
</div></details>
<details>
<summary>+0 (0.00%) : 18873.dasm -
System.Threading.Tasks.Task:get_CompletedTask() (FullOpts)</summary>
<div style="margin-left:1em">
No diffs found?
</div></details>
</div></details>
</div></details>
<details>
<summary>Details</summary>
<div style="margin-left:1em">
#### Size improvements/regressions per collection
|Collection|Contexts with diffs|Improvements|Regressions|Same
size|Improvements (bytes)|Regressions (bytes)|
|---|--:|--:|--:|--:|--:|--:|
|libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch|11|<span
style="color:green">10</span>|<span style="color:red">0</span>|<span
style="color:blue">1</span>|<span style="color:green">-40</span>|<span
style="color:red">+0</span>|
|benchmarks.run.linux.arm64.checked.mch|1|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">1</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
|smoke_tests.nativeaot.linux.arm64.checked.mch|4|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">4</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
||16|<span style="color:green">10</span>|<span
style="color:red">0</span>|<span style="color:blue">6</span>|<span
style="color:green">-40</span>|<span style="color:red">+0</span>|
---
#### PerfScore improvements/regressions per collection
|Collection|Contexts with diffs|Improvements|Regressions|Same
PerfScore|Improvements (PerfScore)|Regressions (PerfScore)|PerfScore
Overall in FullOpts|
|---|--:|--:|--:|--:|--:|--:|--:|
|libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch|11|<span
style="color:green">10</span>|<span style="color:red">0</span>|<span
style="color:blue">1</span>|<span
style="color:green">-0.10%</span>|0.00%|<span
style="color:green">-0.0000%</span>|
|benchmarks.run.linux.arm64.checked.mch|1|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">1</span>|0.00%|0.00%|0.0000%|
|smoke_tests.nativeaot.linux.arm64.checked.mch|4|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">4</span>|0.00%|0.00%|0.0000%|
---
#### Context information
|Collection|Diffed contexts|MinOpts|FullOpts|Missed, base|Missed, diff|
|---|--:|--:|--:|--:|--:|
|libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch|354,001|23,273|330,728|0
(0.00%)|0 (0.00%)|
|benchmarks.run.linux.arm64.checked.mch|63,204|3,337|59,867|0 (0.00%)|0
(0.00%)|
|smoke_tests.nativeaot.linux.arm64.checked.mch|18,890|8|18,882|0
(0.00%)|0 (0.00%)|
||436,095|26,618|409,477|0 (0.00%)|0 (0.00%)|
---
#### jit-analyze output
<details>
<summary>libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch</summary>
<div style="margin-left:1em">
```
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 183146276 (overridden on cmd)
Total bytes of diff: 183146236 (overridden on cmd)
Total bytes of delta: -40 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
```
<details>
<summary>Detail diffs</summary>
```
Top file improvements (bytes):
-4 : 162916.dasm (-0.242% of base)
-4 : 141852.dasm (-0.162% of base)
-4 : 141855.dasm (-0.158% of base)
-4 : 141861.dasm (-0.201% of base)
-4 : 162917.dasm (-0.269% of base)
-4 : 142473.dasm (-1.266% of base)
-4 : 142389.dasm (-0.182% of base)
-4 : 162915.dasm (-0.264% of base)
-4 : 162918.dasm (-0.185% of base)
-4 : 106573.dasm (-0.022% of base)
10 total files with Code Size differences (10 improved, 0 regressed), 1 unchanged.
Top method improvements (bytes):
-4 (-0.022% of base) : 106573.dasm - System.Data.Tests.DataTableTest2:Select_ByFilter():this (FullOpts)
-4 (-1.266% of base) : 142473.dasm - System.IO.Pipelines.Tests.BufferSegmentPoolTest:GetSegments(System.IO.Pipelines.ReadResult):System.Collections.Generic.List`1[System.Buffers.ReadOnlySequenceSegment`1[byte]] (FullOpts)
-4 (-0.182% of base) : 142389.dasm - System.IO.Pipelines.Tests.PipelineReaderWriterFacts:ResetAfterCompleteReaderAndWriterWithoutAdvancingClearsEverything():this (FullOpts)
-4 (-0.162% of base) : 141852.dasm - System.IO.Pipelines.Tests.PipePoolTests:GetMemoryAtMaxPoolSizeAllocatesFromPool():this (FullOpts)
-4 (-0.158% of base) : 141855.dasm - System.IO.Pipelines.Tests.PipePoolTests:GetMemoryOverMaxPoolSizeAllocatesArray():this (FullOpts)
-4 (-0.201% of base) : 141861.dasm - System.IO.Pipelines.Tests.PipePoolTests:WritesToArrayPoolByDefault():this (FullOpts)
-4 (-0.242% of base) : 162916.dasm - System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_IMemoryList_MultiBlock():this (FullOpts)
-4 (-0.185% of base) : 162918.dasm - System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_IMemoryList_SingleBlock():this (FullOpts)
-4 (-0.264% of base) : 162915.dasm - System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory_String():this (FullOpts)
-4 (-0.269% of base) : 162917.dasm - System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory():this (FullOpts)
Top method improvements (percentages):
-4 (-1.266% of base) : 142473.dasm - System.IO.Pipelines.Tests.BufferSegmentPoolTest:GetSegments(System.IO.Pipelines.ReadResult):System.Collections.Generic.List`1[System.Buffers.ReadOnlySequenceSegment`1[byte]] (FullOpts)
-4 (-0.269% of base) : 162917.dasm - System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory():this (FullOpts)
-4 (-0.264% of base) : 162915.dasm - System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory_String():this (FullOpts)
-4 (-0.242% of base) : 162916.dasm - System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_IMemoryList_MultiBlock():this (FullOpts)
-4 (-0.201% of base) : 141861.dasm - System.IO.Pipelines.Tests.PipePoolTests:WritesToArrayPoolByDefault():this (FullOpts)
-4 (-0.185% of base) : 162918.dasm - System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_IMemoryList_SingleBlock():this (FullOpts)
-4 (-0.182% of base) : 142389.dasm - System.IO.Pipelines.Tests.PipelineReaderWriterFacts:ResetAfterCompleteReaderAndWriterWithoutAdvancingClearsEverything():this (FullOpts)
-4 (-0.162% of base) : 141852.dasm - System.IO.Pipelines.Tests.PipePoolTests:GetMemoryAtMaxPoolSizeAllocatesFromPool():this (FullOpts)
-4 (-0.158% of base) : 141855.dasm - System.IO.Pipelines.Tests.PipePoolTests:GetMemoryOverMaxPoolSizeAllocatesArray():this (FullOpts)
-4 (-0.022% of base) : 106573.dasm - System.Data.Tests.DataTableTest2:Select_ByFilter():this (FullOpts)
10 total methods with Code Size differences (10 improved, 0 regressed).
```
</details>
--------------------------------------------------------------------------------
</div></details>
<details>
<summary>benchmarks.run.linux.arm64.checked.mch</summary>
<div style="margin-left:1em">
```
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 21285888 (overridden on cmd)
Total bytes of diff: 21285888 (overridden on cmd)
Total bytes of delta: 0 (0.00 % of base)
```
<details>
<summary>Detail diffs</summary>
```
0 total files with Code Size differences (0 improved, 0 regressed), 1 unchanged.
0 total methods with Code Size differences (0 improved, 0 regressed).
```
</details>
--------------------------------------------------------------------------------
</div></details>
</div></details>
x64 asmdiffs
Diffs are based on <span style="color:#1460aa">2,787,549</span> contexts
(<span style="color:#1460aa">1,078,277</span> MinOpts, <span
style="color:#1460aa">1,709,272</span> FullOpts).
<details>
<summary>Overall (<span style="color:green">-116</span> bytes)</summary>
<div style="margin-left:1em">
|Collection|Base size (bytes)|Diff size (bytes)|PerfScore in Diffs
|---|--:|--:|--:|
|coreclr_tests.run.linux.x64.checked.mch|305,501,642|<span
style="color:green">-110</span>|<span
style="color:green">-14.87%</span>|
|libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch|157,729,192|<span
style="color:green">-2</span>|<span style="color:green">-0.01%</span>|
|libraries_tests.run.linux.x64.Release.mch|392,784,680|<span
style="color:green">-4</span>|<span style="color:green">-0.01%</span>|
</div></details>
<details>
<summary>MinOpts (<span style="color:green">-14</span> bytes)</summary>
<div style="margin-left:1em">
|Collection|Base size (bytes)|Diff size (bytes)|PerfScore in Diffs
|---|--:|--:|--:|
|coreclr_tests.run.linux.x64.checked.mch|197,469,852|<span
style="color:green">-10</span>|<span style="color:green">-1.28%</span>|
|libraries_tests.run.linux.x64.Release.mch|215,792,030|<span
style="color:green">-4</span>|<span style="color:green">-0.01%</span>|
</div></details>
<details>
<summary>FullOpts (<span style="color:green">-102</span>
bytes)</summary>
<div style="margin-left:1em">
|Collection|Base size (bytes)|Diff size (bytes)|PerfScore in Diffs
|---|--:|--:|--:|
|coreclr_tests.run.linux.x64.checked.mch|108,031,790|<span
style="color:green">-100</span>|<span
style="color:green">-16.74%</span>|
|libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch|146,383,976|<span
style="color:green">-2</span>|<span style="color:green">-0.01%</span>|
</div></details>
<details>
<summary>Example diffs</summary>
<div style="margin-left:1em">
<details>
<summary>coreclr_tests.run.linux.x64.checked.mch</summary>
<div style="margin-left:1em">
<details>
<summary><span style="color:green">-8</span> (<span
style="color:green">-29.63%</span>) : 199901.dasm -
TestNeg.Program:NegsBinOpSingleLine(int,int):bool (FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -18,23 +18,19 @@ G_M18888_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=0 bbWeight=1 PerfScore 0.00
G_M18888_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
sar edi, 1
- mov eax, edi
- neg eax
setne al
movzx rax, al
- add esi, esi
- mov ecx, esi
- neg ecx
+ shl esi, 1
setne cl
movzx rcx, cl
or eax, ecx
- ;; size=26 bbWeight=1 PerfScore 4.50
+ ;; size=18 bbWeight=1 PerfScore 3.75
G_M18888_IG03: ; bbWeight=1, epilog, nogc, extend
ret ;; size=1 bbWeight=1 PerfScore 1.00
; END METHOD TestNeg.Program:NegsBinOpSingleLine(int,int):bool
-; Total bytes of code 27, prolog size 0, PerfScore 5.50, instruction count 12, allocated bytes for code 27 (MethodHash=d08ab637) for method TestNeg.Program:NegsBinOpSingleLine(int,int):bool (FullOpts)
+; Total bytes of code 19, prolog size 0, PerfScore 4.75, instruction count 8, allocated bytes for code 19 (MethodHash=d08ab637) for method TestNeg.Program:NegsBinOpSingleLine(int,int):bool (FullOpts)
; ============================================================
Unwind Info:
```
</div></details>
<details>
<summary><span style="color:green">-7</span> (<span
style="color:green">-29.17%</span>) : 199894.dasm -
TestNeg.Program:NegsLSR(uint):int (FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -16,20 +16,17 @@
G_M6300_IG01: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
;; size=0 bbWeight=0.50 PerfScore 0.00
G_M6300_IG02: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov eax, -1
+ mov ecx, 1
shr edi, 3
- mov eax, edi
- mov ecx, -1
- mov edx, 1
- neg rax
- mov eax, edx
- cmove eax, ecx
- ;; size=23 bbWeight=0.50 PerfScore 1.00
+ cmovne eax, ecx
+ ;; size=16 bbWeight=0.50 PerfScore 0.62
G_M6300_IG03: ; bbWeight=0.50, epilog, nogc, extend
ret ;; size=1 bbWeight=0.50 PerfScore 0.50
; END METHOD TestNeg.Program:NegsLSR(uint):int
-; Total bytes of code 24, prolog size 0, PerfScore 1.50, instruction count 8, allocated bytes for code 24 (MethodHash=2a8ee763) for method TestNeg.Program:NegsLSR(uint):int (FullOpts)
+; Total bytes of code 17, prolog size 0, PerfScore 1.12, instruction count 5, allocated bytes for code 17 (MethodHash=2a8ee763) for method TestNeg.Program:NegsLSR(uint):int (FullOpts)
; ============================================================
Unwind Info:
```
</div></details>
<details>
<summary><span style="color:green">-7</span> (<span
style="color:green">-29.17%</span>) : 199896.dasm -
TestNeg.Program:NegsLargeShift(uint):int (FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -16,20 +16,17 @@
G_M11276_IG01: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
;; size=0 bbWeight=0.50 PerfScore 0.00
G_M11276_IG02: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov eax, -1
+ mov ecx, 1
shl edi, 4
- mov eax, edi
- mov ecx, -1
- mov edx, 1
- neg rax
- mov eax, edx
- cmove eax, ecx
- ;; size=23 bbWeight=0.50 PerfScore 1.00
+ cmovne eax, ecx
+ ;; size=16 bbWeight=0.50 PerfScore 0.62
G_M11276_IG03: ; bbWeight=0.50, epilog, nogc, extend
ret ;; size=1 bbWeight=0.50 PerfScore 0.50
; END METHOD TestNeg.Program:NegsLargeShift(uint):int
-; Total bytes of code 24, prolog size 0, PerfScore 1.50, instruction count 8, allocated bytes for code 24 (MethodHash=43eed3f3) for method TestNeg.Program:NegsLargeShift(uint):int (FullOpts)
+; Total bytes of code 17, prolog size 0, PerfScore 1.12, instruction count 5, allocated bytes for code 17 (MethodHash=43eed3f3) for method TestNeg.Program:NegsLargeShift(uint):int (FullOpts)
; ============================================================
Unwind Info:
```
</div></details>
<details>
<summary><span style="color:green">-5</span> (<span
style="color:green">-1.71%</span>) : 531325.dasm -
ILGEN_CLASS:ILGEN_METHOD(bool,char,short,int):char (Tier0)</summary>
<div style="margin-left:1em">
```diff
@@ -74,16 +74,14 @@ G_M28265_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov qword ptr [rbp-0x40], rdx
mov rax, qword ptr [rbp-0x40]
mov qword ptr [rbp-0x48], rax
- mov eax, dword ptr [rbp-0x28]
- neg rax
- test rax, rax
+ cmp dword ptr [rbp-0x28], 0
jne SHORT G_M28265_IG03
mov eax, dword ptr [rbp-0x18]
cmp eax, 255
ja SHORT G_M28265_IG06
mov eax, eax
mov byte ptr [rbp-0x04], al
- ;; size=182 bbWeight=1 PerfScore 117.08
+ ;; size=177 bbWeight=1 PerfScore 117.58
G_M28265_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov eax, dword ptr [rbp-0x10]
cmp rax, qword ptr [rbp-0x48]
@@ -116,7 +114,7 @@ RWD16 dq	8000000000000000h	; -0
RWD24 dd	4F0BD98Fh ; 2.34629e+09
-; Total bytes of code 293, prolog size 31, PerfScore 147.42, instruction count 75, allocated bytes for code 293 (MethodHash=d26f9196) for method ILGEN_CLASS:ILGEN_METHOD(bool,char,short,int):char (Tier0)
+; Total bytes of code 288, prolog size 31, PerfScore 147.92, instruction count 73, allocated bytes for code 288 (MethodHash=d26f9196) for method ILGEN_CLASS:ILGEN_METHOD(bool,char,short,int):char (Tier0)
; ============================================================
Unwind Info:
```
</div></details>
<details>
<summary><span style="color:green">-2</span> (<span
style="color:green">-4.17%</span>) : 181410.dasm -
ldc_neg_i4._neg:i4_3(int,int):int (MinOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -30,18 +30,17 @@ G_M1458_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
;; size=5 bbWeight=0.50 PerfScore 0.50
G_M1458_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
xor eax, eax
- neg eax
test eax, eax
sete al
movzx rax, al
- ;; size=12 bbWeight=1 PerfScore 2.00
+ ;; size=10 bbWeight=1 PerfScore 1.75
G_M1458_IG05: ; bbWeight=1, epilog, nogc, extend
add rsp, 16
pop rbp
ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 48, prolog size 16, PerfScore 12.00, instruction count 16, allocated bytes for code 48 (MethodHash=0125fa4d) for method ldc_neg_i4._neg:i4_3(int,int):int (MinOpts)
+; Total bytes of code 46, prolog size 16, PerfScore 11.75, instruction count 15, allocated bytes for code 46 (MethodHash=0125fa4d) for method ldc_neg_i4._neg:i4_3(int,int):int (MinOpts)
; ============================================================
Unwind Info:
```
</div></details>
<details>
<summary><span style="color:green">-3</span> (<span
style="color:green">-5.77%</span>) : 181421.dasm -
ldc_neg_i8._neg:i8_3(long,long):int (MinOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -30,18 +30,17 @@ G_M18290_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
;; size=5 bbWeight=0.50 PerfScore 0.50
G_M18290_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
xor eax, eax
- neg rax
test rax, rax
sete al
movzx rax, al
- ;; size=14 bbWeight=1 PerfScore 2.00
+ ;; size=11 bbWeight=1 PerfScore 1.75
G_M18290_IG05: ; bbWeight=1, epilog, nogc, extend
add rsp, 16
pop rbp
ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 52, prolog size 18, PerfScore 12.00, instruction count 16, allocated bytes for code 52 (MethodHash=ff46b88d) for method ldc_neg_i8._neg:i8_3(long,long):int (MinOpts)
+; Total bytes of code 49, prolog size 18, PerfScore 11.75, instruction count 15, allocated bytes for code 49 (MethodHash=ff46b88d) for method ldc_neg_i8._neg:i8_3(long,long):int (MinOpts)
; ============================================================
Unwind Info:
```
</div></details>
</div></details>
<details>
<summary>libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch</summary>
<div style="margin-left:1em">
<details>
<summary><span style="color:green">-2</span> (<span
style="color:green">-0.01%</span>) : 124444.dasm -
System.Data.Tests.DataTableTest2:Select_ByFilter():this
(FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -3246,7 +3246,6 @@ G_M43941_IG102: ; bbWeight=1, gcVars=000000000000000000000000000000000000
G_M43941_IG103: ; bbWeight=4, gcrefRegs=F009 {rax rbx r12 r13 r14 r15}, byrefRegs=0000 {}, byref, isz
mov esi, dword ptr [rbp-0x30]
sub esi, dword ptr [rax+0x08]
- neg esi
je G_M43941_IG96
inc dword ptr [r13+0x14]
mov rdi, gword ptr [r13+0x08]
@@ -3254,7 +3253,7 @@ G_M43941_IG103: ; bbWeight=4, gcrefRegs=F009 {rax rbx r12 r13 r14 r15}, b
mov esi, dword ptr [r13+0x10]
cmp dword ptr [rdi+0x08], esi
jbe SHORT G_M43941_IG106
- ;; size=31 bbWeight=4 PerfScore 65.00
+ ;; size=29 bbWeight=4 PerfScore 64.00
G_M43941_IG104: ; bbWeight=3.05, gcVars=00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002 {V06}, gcrefRegs=F088 {rbx rdi r12 r13 r14 r15}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rax]
; GC ptr vars -{V75}
@@ -6658,7 +6657,7 @@ RWD40 dq	4034000000000000h	; 20
RWD48 dq	4039000000000000h	; 25
-; Total bytes of code 14316, prolog size 28, PerfScore 7866.28, instruction count 3034, allocated bytes for code 14316 (MethodHash=c958545a) for method System.Data.Tests.DataTableTest2:Select_ByFilter():this (FullOpts)
+; Total bytes of code 14314, prolog size 28, PerfScore 7865.28, instruction count 3033, allocated bytes for code 14314 (MethodHash=c958545a) for method System.Data.Tests.DataTableTest2:Select_ByFilter():this (FullOpts)
; ============================================================
Unwind Info:
```
</div></details>
</div></details>
<details>
<summary>libraries_tests.run.linux.x64.Release.mch</summary>
<div style="margin-left:1em">
<details>
<summary><span style="color:green">-4</span> (<span
style="color:green">-0.03%</span>) : 314396.dasm -
System.Data.Tests.DataTableTest2:Select_ByFilter():this (Instrumented
Tier0)</summary>
<div style="margin-left:1em">
```diff
@@ -2199,13 +2199,11 @@ G_M43941_IG57: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
mov ecx, dword ptr [rbp-0x240]
sub ecx, dword ptr [rax]
- mov eax, ecx
- ; byrRegs -[rax]
- neg eax
- test eax, eax
+ test ecx, ecx
je G_M43941_IG56
mov rdi, 0xD1FFAB1E
call CORINFO_HELP_COUNTPROFILE32
+ ; byrRegs -[rax]
; gcr arg pop 0
mov rdi, gword ptr [rbp-0x50]
; gcrRegs +[rdi]
@@ -2215,7 +2213,7 @@ G_M43941_IG57: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
call [<unknown method>]
; gcrRegs -[rsi rdi]
; gcr arg pop 0
- ;; size=309 bbWeight=1 PerfScore 58.00
+ ;; size=305 bbWeight=1 PerfScore 57.50
G_M43941_IG58: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov eax, dword ptr [rbp-0x5E0]
dec eax
@@ -5412,7 +5410,7 @@ RWD08 dq	4034000000000000h	; 20
RWD16 dq	4039000000000000h	; 25
-; Total bytes of code 15982, prolog size 67, PerfScore 3425.70, instruction count 2755, allocated bytes for code 15982 (MethodHash=c958545a) for method System.Data.Tests.DataTableTest2:Select_ByFilter():this (Instrumented Tier0)
+; Total bytes of code 15978, prolog size 67, PerfScore 3425.20, instruction count 2753, allocated bytes for code 15978 (MethodHash=c958545a) for method System.Data.Tests.DataTableTest2:Select_ByFilter():this (Instrumented Tier0)
; ============================================================
Unwind Info:
```
</div></details>
</div></details>
</div></details>
<details>
<summary>Details</summary>
<div style="margin-left:1em">
#### Size improvements/regressions per collection
|Collection|Contexts with diffs|Improvements|Regressions|Same
size|Improvements (bytes)|Regressions (bytes)|
|---|--:|--:|--:|--:|--:|--:|
|benchmarks.run.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
|benchmarks.run_pgo.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
|benchmarks.run_pgo_optrepeat.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
|coreclr_tests.run.linux.x64.checked.mch|23|<span
style="color:green">23</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-110</span>|<span
style="color:red">+0</span>|
|libraries.crossgen2.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
|libraries.pmi.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
|libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch|1|<span
style="color:green">1</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-2</span>|<span
style="color:red">+0</span>|
|libraries_tests.run.linux.x64.Release.mch|1|<span
style="color:green">1</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-4</span>|<span
style="color:red">+0</span>|
|realworld.run.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
|smoke_tests.nativeaot.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
||25|<span style="color:green">25</span>|<span
style="color:red">0</span>|<span style="color:blue">0</span>|<span
style="color:green">-116</span>|<span style="color:red">+0</span>|
---
#### PerfScore improvements/regressions per collection
|Collection|Contexts with diffs|Improvements|Regressions|Same
PerfScore|Improvements (PerfScore)|Regressions (PerfScore)|PerfScore
Overall in FullOpts|
|---|--:|--:|--:|--:|--:|--:|--:|
|benchmarks.run.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|0.00%|0.00%|0.0000%|
|benchmarks.run_pgo.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|0.00%|0.00%|0.0000%|
|benchmarks.run_pgo_optrepeat.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|0.00%|0.00%|0.0000%|
|coreclr_tests.run.linux.x64.checked.mch|23|<span
style="color:green">22</span>|<span style="color:red">1</span>|<span
style="color:blue">0</span>|<span
style="color:green">-15.50%</span>|<span
style="color:red">+0.34%</span>|<span
style="color:green">-0.0017%</span>|
|libraries.crossgen2.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|0.00%|0.00%|0.0000%|
|libraries.pmi.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|0.00%|0.00%|0.0000%|
|libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch|1|<span
style="color:green">1</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span
style="color:green">-0.01%</span>|0.00%|<span
style="color:green">-0.0000%</span>|
|libraries_tests.run.linux.x64.Release.mch|1|<span
style="color:green">1</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span
style="color:green">-0.01%</span>|0.00%|0.0000%|
|realworld.run.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|0.00%|0.00%|0.0000%|
|smoke_tests.nativeaot.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|0.00%|0.00%|0.0000%|
---
#### Context information
|Collection|Diffed contexts|MinOpts|FullOpts|Missed, base|Missed, diff|
|---|--:|--:|--:|--:|--:|
|benchmarks.run.linux.x64.checked.mch|75,913|2,972|72,941|0 (0.00%)|0
(0.00%)|
|benchmarks.run_pgo.linux.x64.checked.mch|122,785|86,206|36,579|0
(0.00%)|0 (0.00%)|
|benchmarks.run_pgo_optrepeat.linux.x64.checked.mch|76,998|2,939|74,059|0
(0.00%)|0 (0.00%)|
|coreclr_tests.run.linux.x64.checked.mch|577,098|358,595|218,503|0
(0.00%)|0 (0.00%)|
|libraries.crossgen2.linux.x64.checked.mch|269,385|20|269,365|0
(0.00%)|0 (0.00%)|
|libraries.pmi.linux.x64.checked.mch|354,706|8|354,698|0 (0.00%)|0
(0.00%)|
|libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch|387,764|23,607|364,157|0
(0.00%)|0 (0.00%)|
|libraries_tests.run.linux.x64.Release.mch|862,114|603,896|258,218|0
(0.00%)|0 (0.00%)|
|realworld.run.linux.x64.checked.mch|29,264|21|29,243|0 (0.00%)|0
(0.00%)|
|smoke_tests.nativeaot.linux.x64.checked.mch|31,522|13|31,509|0
(0.00%)|0 (0.00%)|
||2,787,549|1,078,277|1,709,272|0 (0.00%)|0 (0.00%)|
---
#### jit-analyze output
</div></details>
AndyAyersMS pushed a commit that referenced this pull request May 14, 2026
…128163)
> [!NOTE]
> This PR was authored with assistance from GitHub Copilot.
Fixesdotnet#128044.
## Problem
createdump SIGSEGVs on Linux when generating a Heap-type minidump for a
process running interpreted code. The crash reproduces locally with the
`InterpreterStack` DumpTests debuggee and matches the CI failure that
prompted `<DumpTypes>Full</DumpTypes>` to be added as a temporary
workaround.
The faulting backtrace is:
```
#0 Thread::IsAddressInStack threads.cpp:6741
#1 Thread::EnumMemoryRegionsWorker threads.cpp:6909 (calls IsAddressInStack(currentSP))
#2 Thread::EnumMemoryRegions threads.cpp
#3 ThreadStore::EnumMemoryRegions
#4 ClrDataAccess::EnumMemDumpAllThreadsStack
#5 ClrDataAccess::EnumMemoryRegionsWorkerHeap (HEAP2-only path)
```
## Root cause
`Thread::m_pInterpThreadContext` was declared as a raw
`InterpThreadContext *`. In non-DAC code that's a normal host pointer,
but in
DAC mode the field's value is a target-process address. When
`IsAddressInStack` (a DAC-callable helper) dereferenced
`m_pInterpThreadContext->pStackStart` it read from a target-process
address
as if it were a host address, which faults inside createdump.
## Fix
Change the field type to `PTR_InterpThreadContext` (DPTR), matching the
treatment of other Thread fields like `m_pFrame`. In non-DAC builds
`DPTR(T)` is just `T*`, so there is no overhead or behavior change. In
DAC
builds the read goes through `__DPtr<T>` and marshals correctly from the
target.
Also remove the `<DumpTypes>Full</DumpTypes>` workaround on the
`InterpreterStack` DumpTests debuggee so the Heap path that originally
failed is exercised again.
## Validation
Locally reproduced the original SIGSEGV on Linux x64 with the auto-dump
mechanism (`DOTNET_DbgMiniDumpType=2` + `DOTNET_Interpreter=MethodA`)
running the `InterpreterStack` debuggee. With this fix applied,
createdump
produces a complete Heap dump (~74 MB) instead of crashing.
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

[wasm] Bump chrome for testing - linux: 119.0.6045.159, windows: 119.0.6045.160 - #5

Open
github-actions[bot] wants to merge 1 commit into
mainfrom
update-chrome-version-6917071168
Open

[wasm] Bump chrome for testing - linux: 119.0.6045.159, windows: 119.0.6045.160#5
github-actions[bot] wants to merge 1 commit into
mainfrom
update-chrome-version-6917071168

Conversation

@github-actions

Copy link
Copy Markdown

No description provided.

AndyAyersMS pushed a commit that referenced this pull request Sep 7, 2024
* bug #1: don't allow for values out of the SerializationRecordType enum range
* bug #2: throw SerializationException rather than KeyNotFoundException when the referenced record is missing or it points to a record of different type
* bug #3: throw SerializationException rather than FormatException when it's being thrown by BinaryReader (or sth else that we use)
* bug #4: document the fact that IOException can be thrown
* bug #5: throw SerializationException rather than OverflowException when parsing the decimal fails
* bug #6: 0 and 17 are illegal values for PrimitiveType enum
* bug #7: throw SerializationException when a surrogate character is read (so far an ArgumentException was thrown)
AndyAyersMS pushed a commit that referenced this pull request Mar 24, 2026
i.e. Fold: (-(x)) == 0 -> x == 0
arm64 asmdiffs
Diffs are based on <span style="color:#1460aa">436,095</span> contexts
(<span style="color:#1460aa">26,618</span> MinOpts, <span
style="color:#1460aa">409,477</span> FullOpts).
<details>
<summary>Overall (<span style="color:green">-40</span> bytes)</summary>
<div style="margin-left:1em">
|Collection|Base size (bytes)|Diff size (bytes)|PerfScore in Diffs
|---|--:|--:|--:|
|libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch|183,146,276|<span
style="color:green">-40</span>|<span style="color:green">-0.09%</span>|
|benchmarks.run.linux.arm64.checked.mch|21,285,888|+0|0.00%|
|smoke_tests.nativeaot.linux.arm64.checked.mch|3,003,400|+0|0.00%|
</div></details>
<details>
<summary>FullOpts (<span style="color:green">-40</span> bytes)</summary>
<div style="margin-left:1em">
|Collection|Base size (bytes)|Diff size (bytes)|PerfScore in Diffs
|---|--:|--:|--:|
|libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch|168,630,412|<span
style="color:green">-40</span>|<span style="color:green">-0.09%</span>|
|benchmarks.run.linux.arm64.checked.mch|20,953,436|+0|0.00%|
|smoke_tests.nativeaot.linux.arm64.checked.mch|3,001,776|+0|0.00%|
</div></details>
<details>
<summary>Example diffs</summary>
<div style="margin-left:1em">
<details>
<summary>libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch</summary>
<div style="margin-left:1em">
<details>
<summary><span style="color:green">-4</span> (<span
style="color:green">-1.27%</span>) : 142473.dasm -
System.IO.Pipelines.Tests.BufferSegmentPoolTest:GetSegments(System.IO.Pipelines.ReadResult):System.Collections.Generic.List`1[System.Buffers.ReadOnlySequenceSegment`1[byte]]
(FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -53,8 +53,7 @@ G_M13215_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byre
G_M13215_IG03: ; bbWeight=0.50, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref, isz
asr w2, w2, dotnet#31
lsl w2, w2, #1
- add w0, w2, w0, ASR dotnet#31
- negs w0, w0
+ adds w0, w2, w0, ASR dotnet#31
bne G_M13215_IG04
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL dotnet#16
@@ -76,7 +75,7 @@ G_M13215_IG03: ; bbWeight=0.50, gcrefRegs=80002 {x1 x19}, byrefRegs=0000
mov x19, x0
; gcrRegs +[x19]
b G_M13215_IG05
- ;; size=68 bbWeight=0.50 PerfScore 6.00
+ ;; size=64 bbWeight=0.50 PerfScore 5.75
G_M13215_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x19-x20]
mov x20, xzr
@@ -179,7 +178,7 @@ G_M13215_IG13: ; bbWeight=0, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=00
b G_M13215_IG06
;; size=12 bbWeight=0 PerfScore 0.00
-; Total bytes of code 316, prolog size 16, PerfScore 140.93, instruction count 79, allocated bytes for code 316 (MethodHash=c6bccc60) for method System.IO.Pipelines.Tests.BufferSegmentPoolTest:GetSegments(System.IO.Pipelines.ReadResult):System.Collections.Generic.List`1[System.Buffers.ReadOnlySequenceSegment`1[byte]] (FullOpts)
+; Total bytes of code 312, prolog size 16, PerfScore 140.68, instruction count 78, allocated bytes for code 312 (MethodHash=c6bccc60) for method System.IO.Pipelines.Tests.BufferSegmentPoolTest:GetSegments(System.IO.Pipelines.ReadResult):System.Collections.Generic.List`1[System.Buffers.ReadOnlySequenceSegment`1[byte]] (FullOpts)
; ============================================================
Unwind Info:
@@ -190,7 +189,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 79 (0x0004f) Actual length = 316 (0x00013c)
+ Function Length : 78 (0x0004e) Actual length = 312 (0x000138)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
```
</div></details>
<details>
<summary><span style="color:green">-4</span> (<span
style="color:green">-0.27%</span>) : 162917.dasm -
System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory():this
(FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -531,10 +531,9 @@ G_M17523_IG25: ; bbWeight=1, gcrefRegs=400002 {x1 x22}, byrefRegs=0000 {}
G_M17523_IG26: ; bbWeight=0.50, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref, isz
asr w0, w0, dotnet#31
lsl w0, w0, #1
- add w0, w0, w2, ASR dotnet#31
- negs w0, w0
+ adds w0, w0, w2, ASR dotnet#31
beq G_M17523_IG29
- ;; size=20 bbWeight=0.50 PerfScore 2.25
+ ;; size=16 bbWeight=0.50 PerfScore 2.00
G_M17523_IG27: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x1 x19]
mov w19, wzr
@@ -733,7 +732,7 @@ G_M17523_IG43: ; bbWeight=0.00, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, b
brk #0
;; size=32 bbWeight=0.00 PerfScore 0.00
-; Total bytes of code 1488, prolog size 36, PerfScore 200.96, instruction count 372, allocated bytes for code 1488 (MethodHash=abb9bb8c) for method System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory():this (FullOpts)
+; Total bytes of code 1484, prolog size 36, PerfScore 200.71, instruction count 371, allocated bytes for code 1484 (MethodHash=abb9bb8c) for method System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory():this (FullOpts)
; ============================================================
Unwind Info:
@@ -744,7 +743,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 372 (0x00174) Actual length = 1488 (0x0005d0)
+ Function Length : 371 (0x00173) Actual length = 1484 (0x0005cc)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
```
</div></details>
<details>
<summary><span style="color:green">-4</span> (<span
style="color:green">-0.26%</span>) : 162915.dasm -
System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory_String():this
(FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -208,7 +208,7 @@
; V197 cse1 [V197,T40] ( 2, 1 ) ref -> x0 "CSE #7: moderate"
; V198 cse2 [V198,T44] ( 2, 1 ) int -> x23 "CSE #4: moderate"
; V199 cse3 [V199,T45] ( 2, 1 ) long -> x1 "CSE #5: moderate"
-; V200 cse4 [V200,T33] ( 3, 1.50) int -> x1 "CSE dotnet#17: moderate"
+; V200 cse4 [V200,T33] ( 3, 1.50) int -> x1 "CSE dotnet#16: moderate"
; V201 rat0 [V201,T01] ( 3, 5.62) byref -> x1 "fgMakeTemp is creating a new local variable"
; V202 rat1 [V202,T07] ( 5, 3.75) ref -> x0 "replacement local"
; V203 rat2 [V203,T37] ( 3, 1.25) long -> x2 "CSE for expectedClsNode"
@@ -623,8 +623,7 @@ G_M55449_IG30: ; bbWeight=1, gcrefRegs=4180002 {x1 x19 x20 x26}, byrefReg
G_M55449_IG31: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
asr w1, w21, dotnet#31
lsl w1, w1, #1
- add w1, w1, w22, ASR dotnet#31
- negs w1, w1
+ adds w1, w1, w22, ASR dotnet#31
bne G_M55449_IG32
mov x1, x19
; gcrRegs +[x1]
@@ -642,7 +641,7 @@ G_M55449_IG31: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=000
; gcrRegs -[x1 x20]
mov w20, #1
b G_M55449_IG33
- ;; size=68 bbWeight=0.50 PerfScore 6.00
+ ;; size=64 bbWeight=0.50 PerfScore 5.75
G_M55449_IG32: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
mov w20, wzr
;; size=4 bbWeight=0.50 PerfScore 0.25
@@ -776,7 +775,7 @@ G_M55449_IG46: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
brk #0
;; size=40 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1516, prolog size 48, PerfScore 174.78, instruction count 379, allocated bytes for code 1516 (MethodHash=a4562766) for method System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory_String():this (FullOpts)
+; Total bytes of code 1512, prolog size 48, PerfScore 174.53, instruction count 378, allocated bytes for code 1512 (MethodHash=a4562766) for method System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory_String():this (FullOpts)
; ============================================================
Unwind Info:
@@ -787,7 +786,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 379 (0x0017b) Actual length = 1516 (0x0005ec)
+ Function Length : 378 (0x0017a) Actual length = 1512 (0x0005e8)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
```
</div></details>
<details>
<summary>+0 (0.00%) : 223365.dasm -
System.Resources.Extensions.DeserializingResourceReader:CompareStringEqualsName(System.String):bool:this
(FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -106,7 +106,7 @@ G_M52056_IG05: ; bbWeight=0.50, gcrefRegs=500000 {x20 x22}, byrefRegs=000
ldr x3, [x3]
blr x3
; gcrRegs -[x0-x1 x20 x22]
- negs w0, w0
+ cmp w0, #0
cset x0, eq
;; size=40 bbWeight=0.50 PerfScore 4.25
G_M52056_IG06: ; bbWeight=0.50, epilog, nogc, extend
```
</div></details>
<details>
<summary><span style="color:green">-4</span> (<span
style="color:green">-0.02%</span>) : 106573.dasm -
System.Data.Tests.DataTableTest2:Select_ByFilter():this
(FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -3678,8 +3678,7 @@ G_M43941_IG97: ; bbWeight=1, gcVars=0000000000000000000000000000000000000
G_M43941_IG98: ; bbWeight=4, gcrefRegs=4780004 {x2 x19 x20 x21 x22 x26}, byrefRegs=0000 {}, byref, isz
ldr w1, [x2, #0x08]
ldr w0, [fp, #0xD1FFAB1E]	// [V74 tmp49]
- sub w1, w0, w1
- negs w1, w1
+ subs w1, w0, w1
beq G_M43941_IG90
ldp w0, w1, [x22, #0x10]
add w1, w1, #1
@@ -3688,7 +3687,7 @@ G_M43941_IG98: ; bbWeight=4, gcrefRegs=4780004 {x2 x19 x20 x21 x22 x26},
ldr w1, [x2, #0x08]
cmp w1, w0
bls G_M43941_IG100
- ;; size=48 bbWeight=4 PerfScore 76.00
+ ;; size=44 bbWeight=4 PerfScore 74.00
G_M43941_IG99: ; bbWeight=3.03, gcVars=00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002 {V06}, gcrefRegs=4780004 {x2 x19 x20 x21 x22 x26}, byrefRegs=0000 {}, gcvars, byref
; GC ptr vars -{V75}
add w1, w0, #1
@@ -7803,7 +7802,7 @@ RWD00 dq	00740053002D0031h, 0067006E00690072h
RWD16 dq	007200740053002Dh, 00310067006E0069h
-; Total bytes of code 18184, prolog size 44, PerfScore 10435.99, instruction count 4546, allocated bytes for code 18184 (MethodHash=c958545a) for method System.Data.Tests.DataTableTest2:Select_ByFilter():this (FullOpts)
+; Total bytes of code 18180, prolog size 44, PerfScore 10433.99, instruction count 4545, allocated bytes for code 18180 (MethodHash=c958545a) for method System.Data.Tests.DataTableTest2:Select_ByFilter():this (FullOpts)
; ============================================================
Unwind Info:
@@ -7814,7 +7813,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 4130 (0x01022) Actual length = 16520 (0x004088)
+ Function Length : 4129 (0x01021) Actual length = 16516 (0x004084)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
```
</div></details>
<details>
<summary><span style="color:green">-4</span> (<span
style="color:green">-0.16%</span>) : 141855.dasm -
System.IO.Pipelines.Tests.PipePoolTests:GetMemoryOverMaxPoolSizeAllocatesArray():this
(FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -595,8 +595,7 @@ G_M36412_IG24: ; bbWeight=1, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefReg
G_M36412_IG25: ; bbWeight=0.50, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
asr w1, w24, dotnet#31
lsl w1, w1, #1
- add w1, w1, w25, ASR dotnet#31
- negs w1, w1
+ adds w1, w1, w25, ASR dotnet#31
bne G_M36412_IG26
mov x1, x20
; gcrRegs +[x1]
@@ -618,7 +617,7 @@ G_M36412_IG25: ; bbWeight=0.50, gcrefRegs=B80000 {x19 x20 x21 x23}, byref
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
b G_M36412_IG27
- ;; size=68 bbWeight=0.50 PerfScore 6.00
+ ;; size=64 bbWeight=0.50 PerfScore 5.75
G_M36412_IG26: ; bbWeight=0.50, gcrefRegs=A80000 {x19 x21 x23}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x20]
mov x20, xzr
@@ -1232,7 +1231,7 @@ RWD16 dq	<unknown method>
dq	G_M36412_IG51
-; Total bytes of code 2528, prolog size 48, PerfScore 347.37, instruction count 632, allocated bytes for code 2528 (MethodHash=f7d471c3) for method System.IO.Pipelines.Tests.PipePoolTests:GetMemoryOverMaxPoolSizeAllocatesArray():this (FullOpts)
+; Total bytes of code 2524, prolog size 48, PerfScore 347.12, instruction count 631, allocated bytes for code 2524 (MethodHash=f7d471c3) for method System.IO.Pipelines.Tests.PipePoolTests:GetMemoryOverMaxPoolSizeAllocatesArray():this (FullOpts)
; ============================================================
Unwind Info:
@@ -1243,7 +1242,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 591 (0x0024f) Actual length = 2364 (0x00093c)
+ Function Length : 590 (0x0024e) Actual length = 2360 (0x000938)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
```
</div></details>
</div></details>
<details>
<summary>benchmarks.run.linux.arm64.checked.mch</summary>
<div style="margin-left:1em">
<details>
<summary>+0 (0.00%) : 3177.dasm -
System.Resources.ResourceReader:CompareStringEqualsName(System.String):bool:this
(FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -106,7 +106,7 @@ G_M1070_IG05: ; bbWeight=0.50, gcrefRegs=500000 {x20 x22}, byrefRegs=0000
ldr x3, [x3]
blr x3
; gcrRegs -[x0-x1 x20 x22]
- negs w0, w0
+ cmp w0, #0
cset x0, eq
;; size=40 bbWeight=0.50 PerfScore 4.25
G_M1070_IG06: ; bbWeight=0.50, epilog, nogc, extend
```
</div></details>
</div></details>
<details>
<summary>smoke_tests.nativeaot.linux.arm64.checked.mch</summary>
<div style="margin-left:1em">
<details>
<summary>+0 (0.00%) : 18583.dasm -
Generics+TestAsyncGVMScenarios:RunAsync() (FullOpts)</summary>
<div style="margin-left:1em">
No diffs found?
</div></details>
<details>
<summary>+0 (0.00%) : 18730.dasm -
Generics+TestAsyncGVMScenarios:AsyncGvm1[System.__Canon]():this
(FullOpts)</summary>
<div style="margin-left:1em">
No diffs found?
</div></details>
<details>
<summary>+0 (0.00%) : 18865.dasm -
Generics+TestAsyncGVMScenarios:AsyncGvm2[System.__Canon]():this
(FullOpts)</summary>
<div style="margin-left:1em">
No diffs found?
</div></details>
<details>
<summary>+0 (0.00%) : 18873.dasm -
System.Threading.Tasks.Task:get_CompletedTask() (FullOpts)</summary>
<div style="margin-left:1em">
No diffs found?
</div></details>
</div></details>
</div></details>
<details>
<summary>Details</summary>
<div style="margin-left:1em">
#### Size improvements/regressions per collection
|Collection|Contexts with diffs|Improvements|Regressions|Same
size|Improvements (bytes)|Regressions (bytes)|
|---|--:|--:|--:|--:|--:|--:|
|libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch|11|<span
style="color:green">10</span>|<span style="color:red">0</span>|<span
style="color:blue">1</span>|<span style="color:green">-40</span>|<span
style="color:red">+0</span>|
|benchmarks.run.linux.arm64.checked.mch|1|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">1</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
|smoke_tests.nativeaot.linux.arm64.checked.mch|4|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">4</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
||16|<span style="color:green">10</span>|<span
style="color:red">0</span>|<span style="color:blue">6</span>|<span
style="color:green">-40</span>|<span style="color:red">+0</span>|
---
#### PerfScore improvements/regressions per collection
|Collection|Contexts with diffs|Improvements|Regressions|Same
PerfScore|Improvements (PerfScore)|Regressions (PerfScore)|PerfScore
Overall in FullOpts|
|---|--:|--:|--:|--:|--:|--:|--:|
|libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch|11|<span
style="color:green">10</span>|<span style="color:red">0</span>|<span
style="color:blue">1</span>|<span
style="color:green">-0.10%</span>|0.00%|<span
style="color:green">-0.0000%</span>|
|benchmarks.run.linux.arm64.checked.mch|1|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">1</span>|0.00%|0.00%|0.0000%|
|smoke_tests.nativeaot.linux.arm64.checked.mch|4|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">4</span>|0.00%|0.00%|0.0000%|
---
#### Context information
|Collection|Diffed contexts|MinOpts|FullOpts|Missed, base|Missed, diff|
|---|--:|--:|--:|--:|--:|
|libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch|354,001|23,273|330,728|0
(0.00%)|0 (0.00%)|
|benchmarks.run.linux.arm64.checked.mch|63,204|3,337|59,867|0 (0.00%)|0
(0.00%)|
|smoke_tests.nativeaot.linux.arm64.checked.mch|18,890|8|18,882|0
(0.00%)|0 (0.00%)|
||436,095|26,618|409,477|0 (0.00%)|0 (0.00%)|
---
#### jit-analyze output
<details>
<summary>libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch</summary>
<div style="margin-left:1em">
```
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 183146276 (overridden on cmd)
Total bytes of diff: 183146236 (overridden on cmd)
Total bytes of delta: -40 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
```
<details>
<summary>Detail diffs</summary>
```
Top file improvements (bytes):
-4 : 162916.dasm (-0.242% of base)
-4 : 141852.dasm (-0.162% of base)
-4 : 141855.dasm (-0.158% of base)
-4 : 141861.dasm (-0.201% of base)
-4 : 162917.dasm (-0.269% of base)
-4 : 142473.dasm (-1.266% of base)
-4 : 142389.dasm (-0.182% of base)
-4 : 162915.dasm (-0.264% of base)
-4 : 162918.dasm (-0.185% of base)
-4 : 106573.dasm (-0.022% of base)
10 total files with Code Size differences (10 improved, 0 regressed), 1 unchanged.
Top method improvements (bytes):
-4 (-0.022% of base) : 106573.dasm - System.Data.Tests.DataTableTest2:Select_ByFilter():this (FullOpts)
-4 (-1.266% of base) : 142473.dasm - System.IO.Pipelines.Tests.BufferSegmentPoolTest:GetSegments(System.IO.Pipelines.ReadResult):System.Collections.Generic.List`1[System.Buffers.ReadOnlySequenceSegment`1[byte]] (FullOpts)
-4 (-0.182% of base) : 142389.dasm - System.IO.Pipelines.Tests.PipelineReaderWriterFacts:ResetAfterCompleteReaderAndWriterWithoutAdvancingClearsEverything():this (FullOpts)
-4 (-0.162% of base) : 141852.dasm - System.IO.Pipelines.Tests.PipePoolTests:GetMemoryAtMaxPoolSizeAllocatesFromPool():this (FullOpts)
-4 (-0.158% of base) : 141855.dasm - System.IO.Pipelines.Tests.PipePoolTests:GetMemoryOverMaxPoolSizeAllocatesArray():this (FullOpts)
-4 (-0.201% of base) : 141861.dasm - System.IO.Pipelines.Tests.PipePoolTests:WritesToArrayPoolByDefault():this (FullOpts)
-4 (-0.242% of base) : 162916.dasm - System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_IMemoryList_MultiBlock():this (FullOpts)
-4 (-0.185% of base) : 162918.dasm - System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_IMemoryList_SingleBlock():this (FullOpts)
-4 (-0.264% of base) : 162915.dasm - System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory_String():this (FullOpts)
-4 (-0.269% of base) : 162917.dasm - System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory():this (FullOpts)
Top method improvements (percentages):
-4 (-1.266% of base) : 142473.dasm - System.IO.Pipelines.Tests.BufferSegmentPoolTest:GetSegments(System.IO.Pipelines.ReadResult):System.Collections.Generic.List`1[System.Buffers.ReadOnlySequenceSegment`1[byte]] (FullOpts)
-4 (-0.269% of base) : 162917.dasm - System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory():this (FullOpts)
-4 (-0.264% of base) : 162915.dasm - System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory_String():this (FullOpts)
-4 (-0.242% of base) : 162916.dasm - System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_IMemoryList_MultiBlock():this (FullOpts)
-4 (-0.201% of base) : 141861.dasm - System.IO.Pipelines.Tests.PipePoolTests:WritesToArrayPoolByDefault():this (FullOpts)
-4 (-0.185% of base) : 162918.dasm - System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_IMemoryList_SingleBlock():this (FullOpts)
-4 (-0.182% of base) : 142389.dasm - System.IO.Pipelines.Tests.PipelineReaderWriterFacts:ResetAfterCompleteReaderAndWriterWithoutAdvancingClearsEverything():this (FullOpts)
-4 (-0.162% of base) : 141852.dasm - System.IO.Pipelines.Tests.PipePoolTests:GetMemoryAtMaxPoolSizeAllocatesFromPool():this (FullOpts)
-4 (-0.158% of base) : 141855.dasm - System.IO.Pipelines.Tests.PipePoolTests:GetMemoryOverMaxPoolSizeAllocatesArray():this (FullOpts)
-4 (-0.022% of base) : 106573.dasm - System.Data.Tests.DataTableTest2:Select_ByFilter():this (FullOpts)
10 total methods with Code Size differences (10 improved, 0 regressed).
```
</details>
--------------------------------------------------------------------------------
</div></details>
<details>
<summary>benchmarks.run.linux.arm64.checked.mch</summary>
<div style="margin-left:1em">
```
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 21285888 (overridden on cmd)
Total bytes of diff: 21285888 (overridden on cmd)
Total bytes of delta: 0 (0.00 % of base)
```
<details>
<summary>Detail diffs</summary>
```
0 total files with Code Size differences (0 improved, 0 regressed), 1 unchanged.
0 total methods with Code Size differences (0 improved, 0 regressed).
```
</details>
--------------------------------------------------------------------------------
</div></details>
</div></details>
x64 asmdiffs
Diffs are based on <span style="color:#1460aa">2,787,549</span> contexts
(<span style="color:#1460aa">1,078,277</span> MinOpts, <span
style="color:#1460aa">1,709,272</span> FullOpts).
<details>
<summary>Overall (<span style="color:green">-116</span> bytes)</summary>
<div style="margin-left:1em">
|Collection|Base size (bytes)|Diff size (bytes)|PerfScore in Diffs
|---|--:|--:|--:|
|coreclr_tests.run.linux.x64.checked.mch|305,501,642|<span
style="color:green">-110</span>|<span
style="color:green">-14.87%</span>|
|libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch|157,729,192|<span
style="color:green">-2</span>|<span style="color:green">-0.01%</span>|
|libraries_tests.run.linux.x64.Release.mch|392,784,680|<span
style="color:green">-4</span>|<span style="color:green">-0.01%</span>|
</div></details>
<details>
<summary>MinOpts (<span style="color:green">-14</span> bytes)</summary>
<div style="margin-left:1em">
|Collection|Base size (bytes)|Diff size (bytes)|PerfScore in Diffs
|---|--:|--:|--:|
|coreclr_tests.run.linux.x64.checked.mch|197,469,852|<span
style="color:green">-10</span>|<span style="color:green">-1.28%</span>|
|libraries_tests.run.linux.x64.Release.mch|215,792,030|<span
style="color:green">-4</span>|<span style="color:green">-0.01%</span>|
</div></details>
<details>
<summary>FullOpts (<span style="color:green">-102</span>
bytes)</summary>
<div style="margin-left:1em">
|Collection|Base size (bytes)|Diff size (bytes)|PerfScore in Diffs
|---|--:|--:|--:|
|coreclr_tests.run.linux.x64.checked.mch|108,031,790|<span
style="color:green">-100</span>|<span
style="color:green">-16.74%</span>|
|libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch|146,383,976|<span
style="color:green">-2</span>|<span style="color:green">-0.01%</span>|
</div></details>
<details>
<summary>Example diffs</summary>
<div style="margin-left:1em">
<details>
<summary>coreclr_tests.run.linux.x64.checked.mch</summary>
<div style="margin-left:1em">
<details>
<summary><span style="color:green">-8</span> (<span
style="color:green">-29.63%</span>) : 199901.dasm -
TestNeg.Program:NegsBinOpSingleLine(int,int):bool (FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -18,23 +18,19 @@ G_M18888_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=0 bbWeight=1 PerfScore 0.00
G_M18888_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
sar edi, 1
- mov eax, edi
- neg eax
setne al
movzx rax, al
- add esi, esi
- mov ecx, esi
- neg ecx
+ shl esi, 1
setne cl
movzx rcx, cl
or eax, ecx
- ;; size=26 bbWeight=1 PerfScore 4.50
+ ;; size=18 bbWeight=1 PerfScore 3.75
G_M18888_IG03: ; bbWeight=1, epilog, nogc, extend
ret ;; size=1 bbWeight=1 PerfScore 1.00
; END METHOD TestNeg.Program:NegsBinOpSingleLine(int,int):bool
-; Total bytes of code 27, prolog size 0, PerfScore 5.50, instruction count 12, allocated bytes for code 27 (MethodHash=d08ab637) for method TestNeg.Program:NegsBinOpSingleLine(int,int):bool (FullOpts)
+; Total bytes of code 19, prolog size 0, PerfScore 4.75, instruction count 8, allocated bytes for code 19 (MethodHash=d08ab637) for method TestNeg.Program:NegsBinOpSingleLine(int,int):bool (FullOpts)
; ============================================================
Unwind Info:
```
</div></details>
<details>
<summary><span style="color:green">-7</span> (<span
style="color:green">-29.17%</span>) : 199894.dasm -
TestNeg.Program:NegsLSR(uint):int (FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -16,20 +16,17 @@
G_M6300_IG01: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
;; size=0 bbWeight=0.50 PerfScore 0.00
G_M6300_IG02: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov eax, -1
+ mov ecx, 1
shr edi, 3
- mov eax, edi
- mov ecx, -1
- mov edx, 1
- neg rax
- mov eax, edx
- cmove eax, ecx
- ;; size=23 bbWeight=0.50 PerfScore 1.00
+ cmovne eax, ecx
+ ;; size=16 bbWeight=0.50 PerfScore 0.62
G_M6300_IG03: ; bbWeight=0.50, epilog, nogc, extend
ret ;; size=1 bbWeight=0.50 PerfScore 0.50
; END METHOD TestNeg.Program:NegsLSR(uint):int
-; Total bytes of code 24, prolog size 0, PerfScore 1.50, instruction count 8, allocated bytes for code 24 (MethodHash=2a8ee763) for method TestNeg.Program:NegsLSR(uint):int (FullOpts)
+; Total bytes of code 17, prolog size 0, PerfScore 1.12, instruction count 5, allocated bytes for code 17 (MethodHash=2a8ee763) for method TestNeg.Program:NegsLSR(uint):int (FullOpts)
; ============================================================
Unwind Info:
```
</div></details>
<details>
<summary><span style="color:green">-7</span> (<span
style="color:green">-29.17%</span>) : 199896.dasm -
TestNeg.Program:NegsLargeShift(uint):int (FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -16,20 +16,17 @@
G_M11276_IG01: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
;; size=0 bbWeight=0.50 PerfScore 0.00
G_M11276_IG02: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov eax, -1
+ mov ecx, 1
shl edi, 4
- mov eax, edi
- mov ecx, -1
- mov edx, 1
- neg rax
- mov eax, edx
- cmove eax, ecx
- ;; size=23 bbWeight=0.50 PerfScore 1.00
+ cmovne eax, ecx
+ ;; size=16 bbWeight=0.50 PerfScore 0.62
G_M11276_IG03: ; bbWeight=0.50, epilog, nogc, extend
ret ;; size=1 bbWeight=0.50 PerfScore 0.50
; END METHOD TestNeg.Program:NegsLargeShift(uint):int
-; Total bytes of code 24, prolog size 0, PerfScore 1.50, instruction count 8, allocated bytes for code 24 (MethodHash=43eed3f3) for method TestNeg.Program:NegsLargeShift(uint):int (FullOpts)
+; Total bytes of code 17, prolog size 0, PerfScore 1.12, instruction count 5, allocated bytes for code 17 (MethodHash=43eed3f3) for method TestNeg.Program:NegsLargeShift(uint):int (FullOpts)
; ============================================================
Unwind Info:
```
</div></details>
<details>
<summary><span style="color:green">-5</span> (<span
style="color:green">-1.71%</span>) : 531325.dasm -
ILGEN_CLASS:ILGEN_METHOD(bool,char,short,int):char (Tier0)</summary>
<div style="margin-left:1em">
```diff
@@ -74,16 +74,14 @@ G_M28265_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov qword ptr [rbp-0x40], rdx
mov rax, qword ptr [rbp-0x40]
mov qword ptr [rbp-0x48], rax
- mov eax, dword ptr [rbp-0x28]
- neg rax
- test rax, rax
+ cmp dword ptr [rbp-0x28], 0
jne SHORT G_M28265_IG03
mov eax, dword ptr [rbp-0x18]
cmp eax, 255
ja SHORT G_M28265_IG06
mov eax, eax
mov byte ptr [rbp-0x04], al
- ;; size=182 bbWeight=1 PerfScore 117.08
+ ;; size=177 bbWeight=1 PerfScore 117.58
G_M28265_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov eax, dword ptr [rbp-0x10]
cmp rax, qword ptr [rbp-0x48]
@@ -116,7 +114,7 @@ RWD16 dq	8000000000000000h	; -0
RWD24 dd	4F0BD98Fh ; 2.34629e+09
-; Total bytes of code 293, prolog size 31, PerfScore 147.42, instruction count 75, allocated bytes for code 293 (MethodHash=d26f9196) for method ILGEN_CLASS:ILGEN_METHOD(bool,char,short,int):char (Tier0)
+; Total bytes of code 288, prolog size 31, PerfScore 147.92, instruction count 73, allocated bytes for code 288 (MethodHash=d26f9196) for method ILGEN_CLASS:ILGEN_METHOD(bool,char,short,int):char (Tier0)
; ============================================================
Unwind Info:
```
</div></details>
<details>
<summary><span style="color:green">-2</span> (<span
style="color:green">-4.17%</span>) : 181410.dasm -
ldc_neg_i4._neg:i4_3(int,int):int (MinOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -30,18 +30,17 @@ G_M1458_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
;; size=5 bbWeight=0.50 PerfScore 0.50
G_M1458_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
xor eax, eax
- neg eax
test eax, eax
sete al
movzx rax, al
- ;; size=12 bbWeight=1 PerfScore 2.00
+ ;; size=10 bbWeight=1 PerfScore 1.75
G_M1458_IG05: ; bbWeight=1, epilog, nogc, extend
add rsp, 16
pop rbp
ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 48, prolog size 16, PerfScore 12.00, instruction count 16, allocated bytes for code 48 (MethodHash=0125fa4d) for method ldc_neg_i4._neg:i4_3(int,int):int (MinOpts)
+; Total bytes of code 46, prolog size 16, PerfScore 11.75, instruction count 15, allocated bytes for code 46 (MethodHash=0125fa4d) for method ldc_neg_i4._neg:i4_3(int,int):int (MinOpts)
; ============================================================
Unwind Info:
```
</div></details>
<details>
<summary><span style="color:green">-3</span> (<span
style="color:green">-5.77%</span>) : 181421.dasm -
ldc_neg_i8._neg:i8_3(long,long):int (MinOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -30,18 +30,17 @@ G_M18290_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
;; size=5 bbWeight=0.50 PerfScore 0.50
G_M18290_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
xor eax, eax
- neg rax
test rax, rax
sete al
movzx rax, al
- ;; size=14 bbWeight=1 PerfScore 2.00
+ ;; size=11 bbWeight=1 PerfScore 1.75
G_M18290_IG05: ; bbWeight=1, epilog, nogc, extend
add rsp, 16
pop rbp
ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 52, prolog size 18, PerfScore 12.00, instruction count 16, allocated bytes for code 52 (MethodHash=ff46b88d) for method ldc_neg_i8._neg:i8_3(long,long):int (MinOpts)
+; Total bytes of code 49, prolog size 18, PerfScore 11.75, instruction count 15, allocated bytes for code 49 (MethodHash=ff46b88d) for method ldc_neg_i8._neg:i8_3(long,long):int (MinOpts)
; ============================================================
Unwind Info:
```
</div></details>
</div></details>
<details>
<summary>libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch</summary>
<div style="margin-left:1em">
<details>
<summary><span style="color:green">-2</span> (<span
style="color:green">-0.01%</span>) : 124444.dasm -
System.Data.Tests.DataTableTest2:Select_ByFilter():this
(FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -3246,7 +3246,6 @@ G_M43941_IG102: ; bbWeight=1, gcVars=000000000000000000000000000000000000
G_M43941_IG103: ; bbWeight=4, gcrefRegs=F009 {rax rbx r12 r13 r14 r15}, byrefRegs=0000 {}, byref, isz
mov esi, dword ptr [rbp-0x30]
sub esi, dword ptr [rax+0x08]
- neg esi
je G_M43941_IG96
inc dword ptr [r13+0x14]
mov rdi, gword ptr [r13+0x08]
@@ -3254,7 +3253,7 @@ G_M43941_IG103: ; bbWeight=4, gcrefRegs=F009 {rax rbx r12 r13 r14 r15}, b
mov esi, dword ptr [r13+0x10]
cmp dword ptr [rdi+0x08], esi
jbe SHORT G_M43941_IG106
- ;; size=31 bbWeight=4 PerfScore 65.00
+ ;; size=29 bbWeight=4 PerfScore 64.00
G_M43941_IG104: ; bbWeight=3.05, gcVars=00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002 {V06}, gcrefRegs=F088 {rbx rdi r12 r13 r14 r15}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rax]
; GC ptr vars -{V75}
@@ -6658,7 +6657,7 @@ RWD40 dq	4034000000000000h	; 20
RWD48 dq	4039000000000000h	; 25
-; Total bytes of code 14316, prolog size 28, PerfScore 7866.28, instruction count 3034, allocated bytes for code 14316 (MethodHash=c958545a) for method System.Data.Tests.DataTableTest2:Select_ByFilter():this (FullOpts)
+; Total bytes of code 14314, prolog size 28, PerfScore 7865.28, instruction count 3033, allocated bytes for code 14314 (MethodHash=c958545a) for method System.Data.Tests.DataTableTest2:Select_ByFilter():this (FullOpts)
; ============================================================
Unwind Info:
```
</div></details>
</div></details>
<details>
<summary>libraries_tests.run.linux.x64.Release.mch</summary>
<div style="margin-left:1em">
<details>
<summary><span style="color:green">-4</span> (<span
style="color:green">-0.03%</span>) : 314396.dasm -
System.Data.Tests.DataTableTest2:Select_ByFilter():this (Instrumented
Tier0)</summary>
<div style="margin-left:1em">
```diff
@@ -2199,13 +2199,11 @@ G_M43941_IG57: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
mov ecx, dword ptr [rbp-0x240]
sub ecx, dword ptr [rax]
- mov eax, ecx
- ; byrRegs -[rax]
- neg eax
- test eax, eax
+ test ecx, ecx
je G_M43941_IG56
mov rdi, 0xD1FFAB1E
call CORINFO_HELP_COUNTPROFILE32
+ ; byrRegs -[rax]
; gcr arg pop 0
mov rdi, gword ptr [rbp-0x50]
; gcrRegs +[rdi]
@@ -2215,7 +2213,7 @@ G_M43941_IG57: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
call [<unknown method>]
; gcrRegs -[rsi rdi]
; gcr arg pop 0
- ;; size=309 bbWeight=1 PerfScore 58.00
+ ;; size=305 bbWeight=1 PerfScore 57.50
G_M43941_IG58: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov eax, dword ptr [rbp-0x5E0]
dec eax
@@ -5412,7 +5410,7 @@ RWD08 dq	4034000000000000h	; 20
RWD16 dq	4039000000000000h	; 25
-; Total bytes of code 15982, prolog size 67, PerfScore 3425.70, instruction count 2755, allocated bytes for code 15982 (MethodHash=c958545a) for method System.Data.Tests.DataTableTest2:Select_ByFilter():this (Instrumented Tier0)
+; Total bytes of code 15978, prolog size 67, PerfScore 3425.20, instruction count 2753, allocated bytes for code 15978 (MethodHash=c958545a) for method System.Data.Tests.DataTableTest2:Select_ByFilter():this (Instrumented Tier0)
; ============================================================
Unwind Info:
```
</div></details>
</div></details>
</div></details>
<details>
<summary>Details</summary>
<div style="margin-left:1em">
#### Size improvements/regressions per collection
|Collection|Contexts with diffs|Improvements|Regressions|Same
size|Improvements (bytes)|Regressions (bytes)|
|---|--:|--:|--:|--:|--:|--:|
|benchmarks.run.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
|benchmarks.run_pgo.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
|benchmarks.run_pgo_optrepeat.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
|coreclr_tests.run.linux.x64.checked.mch|23|<span
style="color:green">23</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-110</span>|<span
style="color:red">+0</span>|
|libraries.crossgen2.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
|libraries.pmi.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
|libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch|1|<span
style="color:green">1</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-2</span>|<span
style="color:red">+0</span>|
|libraries_tests.run.linux.x64.Release.mch|1|<span
style="color:green">1</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-4</span>|<span
style="color:red">+0</span>|
|realworld.run.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
|smoke_tests.nativeaot.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
||25|<span style="color:green">25</span>|<span
style="color:red">0</span>|<span style="color:blue">0</span>|<span
style="color:green">-116</span>|<span style="color:red">+0</span>|
---
#### PerfScore improvements/regressions per collection
|Collection|Contexts with diffs|Improvements|Regressions|Same
PerfScore|Improvements (PerfScore)|Regressions (PerfScore)|PerfScore
Overall in FullOpts|
|---|--:|--:|--:|--:|--:|--:|--:|
|benchmarks.run.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|0.00%|0.00%|0.0000%|
|benchmarks.run_pgo.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|0.00%|0.00%|0.0000%|
|benchmarks.run_pgo_optrepeat.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|0.00%|0.00%|0.0000%|
|coreclr_tests.run.linux.x64.checked.mch|23|<span
style="color:green">22</span>|<span style="color:red">1</span>|<span
style="color:blue">0</span>|<span
style="color:green">-15.50%</span>|<span
style="color:red">+0.34%</span>|<span
style="color:green">-0.0017%</span>|
|libraries.crossgen2.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|0.00%|0.00%|0.0000%|
|libraries.pmi.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|0.00%|0.00%|0.0000%|
|libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch|1|<span
style="color:green">1</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span
style="color:green">-0.01%</span>|0.00%|<span
style="color:green">-0.0000%</span>|
|libraries_tests.run.linux.x64.Release.mch|1|<span
style="color:green">1</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span
style="color:green">-0.01%</span>|0.00%|0.0000%|
|realworld.run.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|0.00%|0.00%|0.0000%|
|smoke_tests.nativeaot.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|0.00%|0.00%|0.0000%|
---
#### Context information
|Collection|Diffed contexts|MinOpts|FullOpts|Missed, base|Missed, diff|
|---|--:|--:|--:|--:|--:|
|benchmarks.run.linux.x64.checked.mch|75,913|2,972|72,941|0 (0.00%)|0
(0.00%)|
|benchmarks.run_pgo.linux.x64.checked.mch|122,785|86,206|36,579|0
(0.00%)|0 (0.00%)|
|benchmarks.run_pgo_optrepeat.linux.x64.checked.mch|76,998|2,939|74,059|0
(0.00%)|0 (0.00%)|
|coreclr_tests.run.linux.x64.checked.mch|577,098|358,595|218,503|0
(0.00%)|0 (0.00%)|
|libraries.crossgen2.linux.x64.checked.mch|269,385|20|269,365|0
(0.00%)|0 (0.00%)|
|libraries.pmi.linux.x64.checked.mch|354,706|8|354,698|0 (0.00%)|0
(0.00%)|
|libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch|387,764|23,607|364,157|0
(0.00%)|0 (0.00%)|
|libraries_tests.run.linux.x64.Release.mch|862,114|603,896|258,218|0
(0.00%)|0 (0.00%)|
|realworld.run.linux.x64.checked.mch|29,264|21|29,243|0 (0.00%)|0
(0.00%)|
|smoke_tests.nativeaot.linux.x64.checked.mch|31,522|13|31,509|0
(0.00%)|0 (0.00%)|
||2,787,549|1,078,277|1,709,272|0 (0.00%)|0 (0.00%)|
---
#### jit-analyze output
</div></details>
AndyAyersMS pushed a commit that referenced this pull request May 14, 2026
…128163)
> [!NOTE]
> This PR was authored with assistance from GitHub Copilot.
Fixesdotnet#128044.
## Problem
createdump SIGSEGVs on Linux when generating a Heap-type minidump for a
process running interpreted code. The crash reproduces locally with the
`InterpreterStack` DumpTests debuggee and matches the CI failure that
prompted `<DumpTypes>Full</DumpTypes>` to be added as a temporary
workaround.
The faulting backtrace is:
```
#0 Thread::IsAddressInStack threads.cpp:6741
#1 Thread::EnumMemoryRegionsWorker threads.cpp:6909 (calls IsAddressInStack(currentSP))
#2 Thread::EnumMemoryRegions threads.cpp
#3 ThreadStore::EnumMemoryRegions
#4 ClrDataAccess::EnumMemDumpAllThreadsStack
#5 ClrDataAccess::EnumMemoryRegionsWorkerHeap (HEAP2-only path)
```
## Root cause
`Thread::m_pInterpThreadContext` was declared as a raw
`InterpThreadContext *`. In non-DAC code that's a normal host pointer,
but in
DAC mode the field's value is a target-process address. When
`IsAddressInStack` (a DAC-callable helper) dereferenced
`m_pInterpThreadContext->pStackStart` it read from a target-process
address
as if it were a host address, which faults inside createdump.
## Fix
Change the field type to `PTR_InterpThreadContext` (DPTR), matching the
treatment of other Thread fields like `m_pFrame`. In non-DAC builds
`DPTR(T)` is just `T*`, so there is no overhead or behavior change. In
DAC
builds the read goes through `__DPtr<T>` and marshals correctly from the
target.
Also remove the `<DumpTypes>Full</DumpTypes>` workaround on the
`InterpreterStack` DumpTests debuggee so the Heap path that originally
failed is exercised again.
## Validation
Locally reproduced the original SIGSEGV on Linux x64 with the auto-dump
mechanism (`DOTNET_DbgMiniDumpType=2` + `DOTNET_Interpreter=MethodA`)
running the `InterpreterStack` debuggee. With this fix applied,
createdump
produces a complete Heap dump (~74 MB) instead of crashing.
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

[wasm] Bump chrome for testing - linux: 119.0.6045.159, windows: 119.0.6045.160 - #5

Open
github-actions[bot] wants to merge 1 commit into
mainfrom
update-chrome-version-6917071168
Open

[wasm] Bump chrome for testing - linux: 119.0.6045.159, windows: 119.0.6045.160#5
github-actions[bot] wants to merge 1 commit into
mainfrom
update-chrome-version-6917071168

Conversation

@github-actions

Copy link
Copy Markdown

No description provided.

AndyAyersMS pushed a commit that referenced this pull request Sep 7, 2024
* bug #1: don't allow for values out of the SerializationRecordType enum range
* bug #2: throw SerializationException rather than KeyNotFoundException when the referenced record is missing or it points to a record of different type
* bug #3: throw SerializationException rather than FormatException when it's being thrown by BinaryReader (or sth else that we use)
* bug #4: document the fact that IOException can be thrown
* bug #5: throw SerializationException rather than OverflowException when parsing the decimal fails
* bug #6: 0 and 17 are illegal values for PrimitiveType enum
* bug #7: throw SerializationException when a surrogate character is read (so far an ArgumentException was thrown)
AndyAyersMS pushed a commit that referenced this pull request Mar 24, 2026
i.e. Fold: (-(x)) == 0 -> x == 0
arm64 asmdiffs
Diffs are based on <span style="color:#1460aa">436,095</span> contexts
(<span style="color:#1460aa">26,618</span> MinOpts, <span
style="color:#1460aa">409,477</span> FullOpts).
<details>
<summary>Overall (<span style="color:green">-40</span> bytes)</summary>
<div style="margin-left:1em">
|Collection|Base size (bytes)|Diff size (bytes)|PerfScore in Diffs
|---|--:|--:|--:|
|libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch|183,146,276|<span
style="color:green">-40</span>|<span style="color:green">-0.09%</span>|
|benchmarks.run.linux.arm64.checked.mch|21,285,888|+0|0.00%|
|smoke_tests.nativeaot.linux.arm64.checked.mch|3,003,400|+0|0.00%|
</div></details>
<details>
<summary>FullOpts (<span style="color:green">-40</span> bytes)</summary>
<div style="margin-left:1em">
|Collection|Base size (bytes)|Diff size (bytes)|PerfScore in Diffs
|---|--:|--:|--:|
|libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch|168,630,412|<span
style="color:green">-40</span>|<span style="color:green">-0.09%</span>|
|benchmarks.run.linux.arm64.checked.mch|20,953,436|+0|0.00%|
|smoke_tests.nativeaot.linux.arm64.checked.mch|3,001,776|+0|0.00%|
</div></details>
<details>
<summary>Example diffs</summary>
<div style="margin-left:1em">
<details>
<summary>libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch</summary>
<div style="margin-left:1em">
<details>
<summary><span style="color:green">-4</span> (<span
style="color:green">-1.27%</span>) : 142473.dasm -
System.IO.Pipelines.Tests.BufferSegmentPoolTest:GetSegments(System.IO.Pipelines.ReadResult):System.Collections.Generic.List`1[System.Buffers.ReadOnlySequenceSegment`1[byte]]
(FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -53,8 +53,7 @@ G_M13215_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byre
G_M13215_IG03: ; bbWeight=0.50, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref, isz
asr w2, w2, dotnet#31
lsl w2, w2, #1
- add w0, w2, w0, ASR dotnet#31
- negs w0, w0
+ adds w0, w2, w0, ASR dotnet#31
bne G_M13215_IG04
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL dotnet#16
@@ -76,7 +75,7 @@ G_M13215_IG03: ; bbWeight=0.50, gcrefRegs=80002 {x1 x19}, byrefRegs=0000
mov x19, x0
; gcrRegs +[x19]
b G_M13215_IG05
- ;; size=68 bbWeight=0.50 PerfScore 6.00
+ ;; size=64 bbWeight=0.50 PerfScore 5.75
G_M13215_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x19-x20]
mov x20, xzr
@@ -179,7 +178,7 @@ G_M13215_IG13: ; bbWeight=0, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=00
b G_M13215_IG06
;; size=12 bbWeight=0 PerfScore 0.00
-; Total bytes of code 316, prolog size 16, PerfScore 140.93, instruction count 79, allocated bytes for code 316 (MethodHash=c6bccc60) for method System.IO.Pipelines.Tests.BufferSegmentPoolTest:GetSegments(System.IO.Pipelines.ReadResult):System.Collections.Generic.List`1[System.Buffers.ReadOnlySequenceSegment`1[byte]] (FullOpts)
+; Total bytes of code 312, prolog size 16, PerfScore 140.68, instruction count 78, allocated bytes for code 312 (MethodHash=c6bccc60) for method System.IO.Pipelines.Tests.BufferSegmentPoolTest:GetSegments(System.IO.Pipelines.ReadResult):System.Collections.Generic.List`1[System.Buffers.ReadOnlySequenceSegment`1[byte]] (FullOpts)
; ============================================================
Unwind Info:
@@ -190,7 +189,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 79 (0x0004f) Actual length = 316 (0x00013c)
+ Function Length : 78 (0x0004e) Actual length = 312 (0x000138)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
```
</div></details>
<details>
<summary><span style="color:green">-4</span> (<span
style="color:green">-0.27%</span>) : 162917.dasm -
System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory():this
(FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -531,10 +531,9 @@ G_M17523_IG25: ; bbWeight=1, gcrefRegs=400002 {x1 x22}, byrefRegs=0000 {}
G_M17523_IG26: ; bbWeight=0.50, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref, isz
asr w0, w0, dotnet#31
lsl w0, w0, #1
- add w0, w0, w2, ASR dotnet#31
- negs w0, w0
+ adds w0, w0, w2, ASR dotnet#31
beq G_M17523_IG29
- ;; size=20 bbWeight=0.50 PerfScore 2.25
+ ;; size=16 bbWeight=0.50 PerfScore 2.00
G_M17523_IG27: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x1 x19]
mov w19, wzr
@@ -733,7 +732,7 @@ G_M17523_IG43: ; bbWeight=0.00, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, b
brk #0
;; size=32 bbWeight=0.00 PerfScore 0.00
-; Total bytes of code 1488, prolog size 36, PerfScore 200.96, instruction count 372, allocated bytes for code 1488 (MethodHash=abb9bb8c) for method System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory():this (FullOpts)
+; Total bytes of code 1484, prolog size 36, PerfScore 200.71, instruction count 371, allocated bytes for code 1484 (MethodHash=abb9bb8c) for method System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory():this (FullOpts)
; ============================================================
Unwind Info:
@@ -744,7 +743,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 372 (0x00174) Actual length = 1488 (0x0005d0)
+ Function Length : 371 (0x00173) Actual length = 1484 (0x0005cc)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
```
</div></details>
<details>
<summary><span style="color:green">-4</span> (<span
style="color:green">-0.26%</span>) : 162915.dasm -
System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory_String():this
(FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -208,7 +208,7 @@
; V197 cse1 [V197,T40] ( 2, 1 ) ref -> x0 "CSE #7: moderate"
; V198 cse2 [V198,T44] ( 2, 1 ) int -> x23 "CSE #4: moderate"
; V199 cse3 [V199,T45] ( 2, 1 ) long -> x1 "CSE #5: moderate"
-; V200 cse4 [V200,T33] ( 3, 1.50) int -> x1 "CSE dotnet#17: moderate"
+; V200 cse4 [V200,T33] ( 3, 1.50) int -> x1 "CSE dotnet#16: moderate"
; V201 rat0 [V201,T01] ( 3, 5.62) byref -> x1 "fgMakeTemp is creating a new local variable"
; V202 rat1 [V202,T07] ( 5, 3.75) ref -> x0 "replacement local"
; V203 rat2 [V203,T37] ( 3, 1.25) long -> x2 "CSE for expectedClsNode"
@@ -623,8 +623,7 @@ G_M55449_IG30: ; bbWeight=1, gcrefRegs=4180002 {x1 x19 x20 x26}, byrefReg
G_M55449_IG31: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
asr w1, w21, dotnet#31
lsl w1, w1, #1
- add w1, w1, w22, ASR dotnet#31
- negs w1, w1
+ adds w1, w1, w22, ASR dotnet#31
bne G_M55449_IG32
mov x1, x19
; gcrRegs +[x1]
@@ -642,7 +641,7 @@ G_M55449_IG31: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=000
; gcrRegs -[x1 x20]
mov w20, #1
b G_M55449_IG33
- ;; size=68 bbWeight=0.50 PerfScore 6.00
+ ;; size=64 bbWeight=0.50 PerfScore 5.75
G_M55449_IG32: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
mov w20, wzr
;; size=4 bbWeight=0.50 PerfScore 0.25
@@ -776,7 +775,7 @@ G_M55449_IG46: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
brk #0
;; size=40 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1516, prolog size 48, PerfScore 174.78, instruction count 379, allocated bytes for code 1516 (MethodHash=a4562766) for method System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory_String():this (FullOpts)
+; Total bytes of code 1512, prolog size 48, PerfScore 174.53, instruction count 378, allocated bytes for code 1512 (MethodHash=a4562766) for method System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory_String():this (FullOpts)
; ============================================================
Unwind Info:
@@ -787,7 +786,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 379 (0x0017b) Actual length = 1516 (0x0005ec)
+ Function Length : 378 (0x0017a) Actual length = 1512 (0x0005e8)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
```
</div></details>
<details>
<summary>+0 (0.00%) : 223365.dasm -
System.Resources.Extensions.DeserializingResourceReader:CompareStringEqualsName(System.String):bool:this
(FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -106,7 +106,7 @@ G_M52056_IG05: ; bbWeight=0.50, gcrefRegs=500000 {x20 x22}, byrefRegs=000
ldr x3, [x3]
blr x3
; gcrRegs -[x0-x1 x20 x22]
- negs w0, w0
+ cmp w0, #0
cset x0, eq
;; size=40 bbWeight=0.50 PerfScore 4.25
G_M52056_IG06: ; bbWeight=0.50, epilog, nogc, extend
```
</div></details>
<details>
<summary><span style="color:green">-4</span> (<span
style="color:green">-0.02%</span>) : 106573.dasm -
System.Data.Tests.DataTableTest2:Select_ByFilter():this
(FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -3678,8 +3678,7 @@ G_M43941_IG97: ; bbWeight=1, gcVars=0000000000000000000000000000000000000
G_M43941_IG98: ; bbWeight=4, gcrefRegs=4780004 {x2 x19 x20 x21 x22 x26}, byrefRegs=0000 {}, byref, isz
ldr w1, [x2, #0x08]
ldr w0, [fp, #0xD1FFAB1E]	// [V74 tmp49]
- sub w1, w0, w1
- negs w1, w1
+ subs w1, w0, w1
beq G_M43941_IG90
ldp w0, w1, [x22, #0x10]
add w1, w1, #1
@@ -3688,7 +3687,7 @@ G_M43941_IG98: ; bbWeight=4, gcrefRegs=4780004 {x2 x19 x20 x21 x22 x26},
ldr w1, [x2, #0x08]
cmp w1, w0
bls G_M43941_IG100
- ;; size=48 bbWeight=4 PerfScore 76.00
+ ;; size=44 bbWeight=4 PerfScore 74.00
G_M43941_IG99: ; bbWeight=3.03, gcVars=00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002 {V06}, gcrefRegs=4780004 {x2 x19 x20 x21 x22 x26}, byrefRegs=0000 {}, gcvars, byref
; GC ptr vars -{V75}
add w1, w0, #1
@@ -7803,7 +7802,7 @@ RWD00 dq	00740053002D0031h, 0067006E00690072h
RWD16 dq	007200740053002Dh, 00310067006E0069h
-; Total bytes of code 18184, prolog size 44, PerfScore 10435.99, instruction count 4546, allocated bytes for code 18184 (MethodHash=c958545a) for method System.Data.Tests.DataTableTest2:Select_ByFilter():this (FullOpts)
+; Total bytes of code 18180, prolog size 44, PerfScore 10433.99, instruction count 4545, allocated bytes for code 18180 (MethodHash=c958545a) for method System.Data.Tests.DataTableTest2:Select_ByFilter():this (FullOpts)
; ============================================================
Unwind Info:
@@ -7814,7 +7813,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 4130 (0x01022) Actual length = 16520 (0x004088)
+ Function Length : 4129 (0x01021) Actual length = 16516 (0x004084)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
```
</div></details>
<details>
<summary><span style="color:green">-4</span> (<span
style="color:green">-0.16%</span>) : 141855.dasm -
System.IO.Pipelines.Tests.PipePoolTests:GetMemoryOverMaxPoolSizeAllocatesArray():this
(FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -595,8 +595,7 @@ G_M36412_IG24: ; bbWeight=1, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefReg
G_M36412_IG25: ; bbWeight=0.50, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
asr w1, w24, dotnet#31
lsl w1, w1, #1
- add w1, w1, w25, ASR dotnet#31
- negs w1, w1
+ adds w1, w1, w25, ASR dotnet#31
bne G_M36412_IG26
mov x1, x20
; gcrRegs +[x1]
@@ -618,7 +617,7 @@ G_M36412_IG25: ; bbWeight=0.50, gcrefRegs=B80000 {x19 x20 x21 x23}, byref
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
b G_M36412_IG27
- ;; size=68 bbWeight=0.50 PerfScore 6.00
+ ;; size=64 bbWeight=0.50 PerfScore 5.75
G_M36412_IG26: ; bbWeight=0.50, gcrefRegs=A80000 {x19 x21 x23}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x20]
mov x20, xzr
@@ -1232,7 +1231,7 @@ RWD16 dq	<unknown method>
dq	G_M36412_IG51
-; Total bytes of code 2528, prolog size 48, PerfScore 347.37, instruction count 632, allocated bytes for code 2528 (MethodHash=f7d471c3) for method System.IO.Pipelines.Tests.PipePoolTests:GetMemoryOverMaxPoolSizeAllocatesArray():this (FullOpts)
+; Total bytes of code 2524, prolog size 48, PerfScore 347.12, instruction count 631, allocated bytes for code 2524 (MethodHash=f7d471c3) for method System.IO.Pipelines.Tests.PipePoolTests:GetMemoryOverMaxPoolSizeAllocatesArray():this (FullOpts)
; ============================================================
Unwind Info:
@@ -1243,7 +1242,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 591 (0x0024f) Actual length = 2364 (0x00093c)
+ Function Length : 590 (0x0024e) Actual length = 2360 (0x000938)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
```
</div></details>
</div></details>
<details>
<summary>benchmarks.run.linux.arm64.checked.mch</summary>
<div style="margin-left:1em">
<details>
<summary>+0 (0.00%) : 3177.dasm -
System.Resources.ResourceReader:CompareStringEqualsName(System.String):bool:this
(FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -106,7 +106,7 @@ G_M1070_IG05: ; bbWeight=0.50, gcrefRegs=500000 {x20 x22}, byrefRegs=0000
ldr x3, [x3]
blr x3
; gcrRegs -[x0-x1 x20 x22]
- negs w0, w0
+ cmp w0, #0
cset x0, eq
;; size=40 bbWeight=0.50 PerfScore 4.25
G_M1070_IG06: ; bbWeight=0.50, epilog, nogc, extend
```
</div></details>
</div></details>
<details>
<summary>smoke_tests.nativeaot.linux.arm64.checked.mch</summary>
<div style="margin-left:1em">
<details>
<summary>+0 (0.00%) : 18583.dasm -
Generics+TestAsyncGVMScenarios:RunAsync() (FullOpts)</summary>
<div style="margin-left:1em">
No diffs found?
</div></details>
<details>
<summary>+0 (0.00%) : 18730.dasm -
Generics+TestAsyncGVMScenarios:AsyncGvm1[System.__Canon]():this
(FullOpts)</summary>
<div style="margin-left:1em">
No diffs found?
</div></details>
<details>
<summary>+0 (0.00%) : 18865.dasm -
Generics+TestAsyncGVMScenarios:AsyncGvm2[System.__Canon]():this
(FullOpts)</summary>
<div style="margin-left:1em">
No diffs found?
</div></details>
<details>
<summary>+0 (0.00%) : 18873.dasm -
System.Threading.Tasks.Task:get_CompletedTask() (FullOpts)</summary>
<div style="margin-left:1em">
No diffs found?
</div></details>
</div></details>
</div></details>
<details>
<summary>Details</summary>
<div style="margin-left:1em">
#### Size improvements/regressions per collection
|Collection|Contexts with diffs|Improvements|Regressions|Same
size|Improvements (bytes)|Regressions (bytes)|
|---|--:|--:|--:|--:|--:|--:|
|libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch|11|<span
style="color:green">10</span>|<span style="color:red">0</span>|<span
style="color:blue">1</span>|<span style="color:green">-40</span>|<span
style="color:red">+0</span>|
|benchmarks.run.linux.arm64.checked.mch|1|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">1</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
|smoke_tests.nativeaot.linux.arm64.checked.mch|4|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">4</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
||16|<span style="color:green">10</span>|<span
style="color:red">0</span>|<span style="color:blue">6</span>|<span
style="color:green">-40</span>|<span style="color:red">+0</span>|
---
#### PerfScore improvements/regressions per collection
|Collection|Contexts with diffs|Improvements|Regressions|Same
PerfScore|Improvements (PerfScore)|Regressions (PerfScore)|PerfScore
Overall in FullOpts|
|---|--:|--:|--:|--:|--:|--:|--:|
|libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch|11|<span
style="color:green">10</span>|<span style="color:red">0</span>|<span
style="color:blue">1</span>|<span
style="color:green">-0.10%</span>|0.00%|<span
style="color:green">-0.0000%</span>|
|benchmarks.run.linux.arm64.checked.mch|1|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">1</span>|0.00%|0.00%|0.0000%|
|smoke_tests.nativeaot.linux.arm64.checked.mch|4|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">4</span>|0.00%|0.00%|0.0000%|
---
#### Context information
|Collection|Diffed contexts|MinOpts|FullOpts|Missed, base|Missed, diff|
|---|--:|--:|--:|--:|--:|
|libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch|354,001|23,273|330,728|0
(0.00%)|0 (0.00%)|
|benchmarks.run.linux.arm64.checked.mch|63,204|3,337|59,867|0 (0.00%)|0
(0.00%)|
|smoke_tests.nativeaot.linux.arm64.checked.mch|18,890|8|18,882|0
(0.00%)|0 (0.00%)|
||436,095|26,618|409,477|0 (0.00%)|0 (0.00%)|
---
#### jit-analyze output
<details>
<summary>libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch</summary>
<div style="margin-left:1em">
```
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 183146276 (overridden on cmd)
Total bytes of diff: 183146236 (overridden on cmd)
Total bytes of delta: -40 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
```
<details>
<summary>Detail diffs</summary>
```
Top file improvements (bytes):
-4 : 162916.dasm (-0.242% of base)
-4 : 141852.dasm (-0.162% of base)
-4 : 141855.dasm (-0.158% of base)
-4 : 141861.dasm (-0.201% of base)
-4 : 162917.dasm (-0.269% of base)
-4 : 142473.dasm (-1.266% of base)
-4 : 142389.dasm (-0.182% of base)
-4 : 162915.dasm (-0.264% of base)
-4 : 162918.dasm (-0.185% of base)
-4 : 106573.dasm (-0.022% of base)
10 total files with Code Size differences (10 improved, 0 regressed), 1 unchanged.
Top method improvements (bytes):
-4 (-0.022% of base) : 106573.dasm - System.Data.Tests.DataTableTest2:Select_ByFilter():this (FullOpts)
-4 (-1.266% of base) : 142473.dasm - System.IO.Pipelines.Tests.BufferSegmentPoolTest:GetSegments(System.IO.Pipelines.ReadResult):System.Collections.Generic.List`1[System.Buffers.ReadOnlySequenceSegment`1[byte]] (FullOpts)
-4 (-0.182% of base) : 142389.dasm - System.IO.Pipelines.Tests.PipelineReaderWriterFacts:ResetAfterCompleteReaderAndWriterWithoutAdvancingClearsEverything():this (FullOpts)
-4 (-0.162% of base) : 141852.dasm - System.IO.Pipelines.Tests.PipePoolTests:GetMemoryAtMaxPoolSizeAllocatesFromPool():this (FullOpts)
-4 (-0.158% of base) : 141855.dasm - System.IO.Pipelines.Tests.PipePoolTests:GetMemoryOverMaxPoolSizeAllocatesArray():this (FullOpts)
-4 (-0.201% of base) : 141861.dasm - System.IO.Pipelines.Tests.PipePoolTests:WritesToArrayPoolByDefault():this (FullOpts)
-4 (-0.242% of base) : 162916.dasm - System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_IMemoryList_MultiBlock():this (FullOpts)
-4 (-0.185% of base) : 162918.dasm - System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_IMemoryList_SingleBlock():this (FullOpts)
-4 (-0.264% of base) : 162915.dasm - System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory_String():this (FullOpts)
-4 (-0.269% of base) : 162917.dasm - System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory():this (FullOpts)
Top method improvements (percentages):
-4 (-1.266% of base) : 142473.dasm - System.IO.Pipelines.Tests.BufferSegmentPoolTest:GetSegments(System.IO.Pipelines.ReadResult):System.Collections.Generic.List`1[System.Buffers.ReadOnlySequenceSegment`1[byte]] (FullOpts)
-4 (-0.269% of base) : 162917.dasm - System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory():this (FullOpts)
-4 (-0.264% of base) : 162915.dasm - System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory_String():this (FullOpts)
-4 (-0.242% of base) : 162916.dasm - System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_IMemoryList_MultiBlock():this (FullOpts)
-4 (-0.201% of base) : 141861.dasm - System.IO.Pipelines.Tests.PipePoolTests:WritesToArrayPoolByDefault():this (FullOpts)
-4 (-0.185% of base) : 162918.dasm - System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_IMemoryList_SingleBlock():this (FullOpts)
-4 (-0.182% of base) : 142389.dasm - System.IO.Pipelines.Tests.PipelineReaderWriterFacts:ResetAfterCompleteReaderAndWriterWithoutAdvancingClearsEverything():this (FullOpts)
-4 (-0.162% of base) : 141852.dasm - System.IO.Pipelines.Tests.PipePoolTests:GetMemoryAtMaxPoolSizeAllocatesFromPool():this (FullOpts)
-4 (-0.158% of base) : 141855.dasm - System.IO.Pipelines.Tests.PipePoolTests:GetMemoryOverMaxPoolSizeAllocatesArray():this (FullOpts)
-4 (-0.022% of base) : 106573.dasm - System.Data.Tests.DataTableTest2:Select_ByFilter():this (FullOpts)
10 total methods with Code Size differences (10 improved, 0 regressed).
```
</details>
--------------------------------------------------------------------------------
</div></details>
<details>
<summary>benchmarks.run.linux.arm64.checked.mch</summary>
<div style="margin-left:1em">
```
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 21285888 (overridden on cmd)
Total bytes of diff: 21285888 (overridden on cmd)
Total bytes of delta: 0 (0.00 % of base)
```
<details>
<summary>Detail diffs</summary>
```
0 total files with Code Size differences (0 improved, 0 regressed), 1 unchanged.
0 total methods with Code Size differences (0 improved, 0 regressed).
```
</details>
--------------------------------------------------------------------------------
</div></details>
</div></details>
x64 asmdiffs
Diffs are based on <span style="color:#1460aa">2,787,549</span> contexts
(<span style="color:#1460aa">1,078,277</span> MinOpts, <span
style="color:#1460aa">1,709,272</span> FullOpts).
<details>
<summary>Overall (<span style="color:green">-116</span> bytes)</summary>
<div style="margin-left:1em">
|Collection|Base size (bytes)|Diff size (bytes)|PerfScore in Diffs
|---|--:|--:|--:|
|coreclr_tests.run.linux.x64.checked.mch|305,501,642|<span
style="color:green">-110</span>|<span
style="color:green">-14.87%</span>|
|libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch|157,729,192|<span
style="color:green">-2</span>|<span style="color:green">-0.01%</span>|
|libraries_tests.run.linux.x64.Release.mch|392,784,680|<span
style="color:green">-4</span>|<span style="color:green">-0.01%</span>|
</div></details>
<details>
<summary>MinOpts (<span style="color:green">-14</span> bytes)</summary>
<div style="margin-left:1em">
|Collection|Base size (bytes)|Diff size (bytes)|PerfScore in Diffs
|---|--:|--:|--:|
|coreclr_tests.run.linux.x64.checked.mch|197,469,852|<span
style="color:green">-10</span>|<span style="color:green">-1.28%</span>|
|libraries_tests.run.linux.x64.Release.mch|215,792,030|<span
style="color:green">-4</span>|<span style="color:green">-0.01%</span>|
</div></details>
<details>
<summary>FullOpts (<span style="color:green">-102</span>
bytes)</summary>
<div style="margin-left:1em">
|Collection|Base size (bytes)|Diff size (bytes)|PerfScore in Diffs
|---|--:|--:|--:|
|coreclr_tests.run.linux.x64.checked.mch|108,031,790|<span
style="color:green">-100</span>|<span
style="color:green">-16.74%</span>|
|libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch|146,383,976|<span
style="color:green">-2</span>|<span style="color:green">-0.01%</span>|
</div></details>
<details>
<summary>Example diffs</summary>
<div style="margin-left:1em">
<details>
<summary>coreclr_tests.run.linux.x64.checked.mch</summary>
<div style="margin-left:1em">
<details>
<summary><span style="color:green">-8</span> (<span
style="color:green">-29.63%</span>) : 199901.dasm -
TestNeg.Program:NegsBinOpSingleLine(int,int):bool (FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -18,23 +18,19 @@ G_M18888_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=0 bbWeight=1 PerfScore 0.00
G_M18888_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
sar edi, 1
- mov eax, edi
- neg eax
setne al
movzx rax, al
- add esi, esi
- mov ecx, esi
- neg ecx
+ shl esi, 1
setne cl
movzx rcx, cl
or eax, ecx
- ;; size=26 bbWeight=1 PerfScore 4.50
+ ;; size=18 bbWeight=1 PerfScore 3.75
G_M18888_IG03: ; bbWeight=1, epilog, nogc, extend
ret ;; size=1 bbWeight=1 PerfScore 1.00
; END METHOD TestNeg.Program:NegsBinOpSingleLine(int,int):bool
-; Total bytes of code 27, prolog size 0, PerfScore 5.50, instruction count 12, allocated bytes for code 27 (MethodHash=d08ab637) for method TestNeg.Program:NegsBinOpSingleLine(int,int):bool (FullOpts)
+; Total bytes of code 19, prolog size 0, PerfScore 4.75, instruction count 8, allocated bytes for code 19 (MethodHash=d08ab637) for method TestNeg.Program:NegsBinOpSingleLine(int,int):bool (FullOpts)
; ============================================================
Unwind Info:
```
</div></details>
<details>
<summary><span style="color:green">-7</span> (<span
style="color:green">-29.17%</span>) : 199894.dasm -
TestNeg.Program:NegsLSR(uint):int (FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -16,20 +16,17 @@
G_M6300_IG01: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
;; size=0 bbWeight=0.50 PerfScore 0.00
G_M6300_IG02: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov eax, -1
+ mov ecx, 1
shr edi, 3
- mov eax, edi
- mov ecx, -1
- mov edx, 1
- neg rax
- mov eax, edx
- cmove eax, ecx
- ;; size=23 bbWeight=0.50 PerfScore 1.00
+ cmovne eax, ecx
+ ;; size=16 bbWeight=0.50 PerfScore 0.62
G_M6300_IG03: ; bbWeight=0.50, epilog, nogc, extend
ret ;; size=1 bbWeight=0.50 PerfScore 0.50
; END METHOD TestNeg.Program:NegsLSR(uint):int
-; Total bytes of code 24, prolog size 0, PerfScore 1.50, instruction count 8, allocated bytes for code 24 (MethodHash=2a8ee763) for method TestNeg.Program:NegsLSR(uint):int (FullOpts)
+; Total bytes of code 17, prolog size 0, PerfScore 1.12, instruction count 5, allocated bytes for code 17 (MethodHash=2a8ee763) for method TestNeg.Program:NegsLSR(uint):int (FullOpts)
; ============================================================
Unwind Info:
```
</div></details>
<details>
<summary><span style="color:green">-7</span> (<span
style="color:green">-29.17%</span>) : 199896.dasm -
TestNeg.Program:NegsLargeShift(uint):int (FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -16,20 +16,17 @@
G_M11276_IG01: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
;; size=0 bbWeight=0.50 PerfScore 0.00
G_M11276_IG02: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov eax, -1
+ mov ecx, 1
shl edi, 4
- mov eax, edi
- mov ecx, -1
- mov edx, 1
- neg rax
- mov eax, edx
- cmove eax, ecx
- ;; size=23 bbWeight=0.50 PerfScore 1.00
+ cmovne eax, ecx
+ ;; size=16 bbWeight=0.50 PerfScore 0.62
G_M11276_IG03: ; bbWeight=0.50, epilog, nogc, extend
ret ;; size=1 bbWeight=0.50 PerfScore 0.50
; END METHOD TestNeg.Program:NegsLargeShift(uint):int
-; Total bytes of code 24, prolog size 0, PerfScore 1.50, instruction count 8, allocated bytes for code 24 (MethodHash=43eed3f3) for method TestNeg.Program:NegsLargeShift(uint):int (FullOpts)
+; Total bytes of code 17, prolog size 0, PerfScore 1.12, instruction count 5, allocated bytes for code 17 (MethodHash=43eed3f3) for method TestNeg.Program:NegsLargeShift(uint):int (FullOpts)
; ============================================================
Unwind Info:
```
</div></details>
<details>
<summary><span style="color:green">-5</span> (<span
style="color:green">-1.71%</span>) : 531325.dasm -
ILGEN_CLASS:ILGEN_METHOD(bool,char,short,int):char (Tier0)</summary>
<div style="margin-left:1em">
```diff
@@ -74,16 +74,14 @@ G_M28265_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov qword ptr [rbp-0x40], rdx
mov rax, qword ptr [rbp-0x40]
mov qword ptr [rbp-0x48], rax
- mov eax, dword ptr [rbp-0x28]
- neg rax
- test rax, rax
+ cmp dword ptr [rbp-0x28], 0
jne SHORT G_M28265_IG03
mov eax, dword ptr [rbp-0x18]
cmp eax, 255
ja SHORT G_M28265_IG06
mov eax, eax
mov byte ptr [rbp-0x04], al
- ;; size=182 bbWeight=1 PerfScore 117.08
+ ;; size=177 bbWeight=1 PerfScore 117.58
G_M28265_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov eax, dword ptr [rbp-0x10]
cmp rax, qword ptr [rbp-0x48]
@@ -116,7 +114,7 @@ RWD16 dq	8000000000000000h	; -0
RWD24 dd	4F0BD98Fh ; 2.34629e+09
-; Total bytes of code 293, prolog size 31, PerfScore 147.42, instruction count 75, allocated bytes for code 293 (MethodHash=d26f9196) for method ILGEN_CLASS:ILGEN_METHOD(bool,char,short,int):char (Tier0)
+; Total bytes of code 288, prolog size 31, PerfScore 147.92, instruction count 73, allocated bytes for code 288 (MethodHash=d26f9196) for method ILGEN_CLASS:ILGEN_METHOD(bool,char,short,int):char (Tier0)
; ============================================================
Unwind Info:
```
</div></details>
<details>
<summary><span style="color:green">-2</span> (<span
style="color:green">-4.17%</span>) : 181410.dasm -
ldc_neg_i4._neg:i4_3(int,int):int (MinOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -30,18 +30,17 @@ G_M1458_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
;; size=5 bbWeight=0.50 PerfScore 0.50
G_M1458_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
xor eax, eax
- neg eax
test eax, eax
sete al
movzx rax, al
- ;; size=12 bbWeight=1 PerfScore 2.00
+ ;; size=10 bbWeight=1 PerfScore 1.75
G_M1458_IG05: ; bbWeight=1, epilog, nogc, extend
add rsp, 16
pop rbp
ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 48, prolog size 16, PerfScore 12.00, instruction count 16, allocated bytes for code 48 (MethodHash=0125fa4d) for method ldc_neg_i4._neg:i4_3(int,int):int (MinOpts)
+; Total bytes of code 46, prolog size 16, PerfScore 11.75, instruction count 15, allocated bytes for code 46 (MethodHash=0125fa4d) for method ldc_neg_i4._neg:i4_3(int,int):int (MinOpts)
; ============================================================
Unwind Info:
```
</div></details>
<details>
<summary><span style="color:green">-3</span> (<span
style="color:green">-5.77%</span>) : 181421.dasm -
ldc_neg_i8._neg:i8_3(long,long):int (MinOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -30,18 +30,17 @@ G_M18290_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
;; size=5 bbWeight=0.50 PerfScore 0.50
G_M18290_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
xor eax, eax
- neg rax
test rax, rax
sete al
movzx rax, al
- ;; size=14 bbWeight=1 PerfScore 2.00
+ ;; size=11 bbWeight=1 PerfScore 1.75
G_M18290_IG05: ; bbWeight=1, epilog, nogc, extend
add rsp, 16
pop rbp
ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 52, prolog size 18, PerfScore 12.00, instruction count 16, allocated bytes for code 52 (MethodHash=ff46b88d) for method ldc_neg_i8._neg:i8_3(long,long):int (MinOpts)
+; Total bytes of code 49, prolog size 18, PerfScore 11.75, instruction count 15, allocated bytes for code 49 (MethodHash=ff46b88d) for method ldc_neg_i8._neg:i8_3(long,long):int (MinOpts)
; ============================================================
Unwind Info:
```
</div></details>
</div></details>
<details>
<summary>libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch</summary>
<div style="margin-left:1em">
<details>
<summary><span style="color:green">-2</span> (<span
style="color:green">-0.01%</span>) : 124444.dasm -
System.Data.Tests.DataTableTest2:Select_ByFilter():this
(FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -3246,7 +3246,6 @@ G_M43941_IG102: ; bbWeight=1, gcVars=000000000000000000000000000000000000
G_M43941_IG103: ; bbWeight=4, gcrefRegs=F009 {rax rbx r12 r13 r14 r15}, byrefRegs=0000 {}, byref, isz
mov esi, dword ptr [rbp-0x30]
sub esi, dword ptr [rax+0x08]
- neg esi
je G_M43941_IG96
inc dword ptr [r13+0x14]
mov rdi, gword ptr [r13+0x08]
@@ -3254,7 +3253,7 @@ G_M43941_IG103: ; bbWeight=4, gcrefRegs=F009 {rax rbx r12 r13 r14 r15}, b
mov esi, dword ptr [r13+0x10]
cmp dword ptr [rdi+0x08], esi
jbe SHORT G_M43941_IG106
- ;; size=31 bbWeight=4 PerfScore 65.00
+ ;; size=29 bbWeight=4 PerfScore 64.00
G_M43941_IG104: ; bbWeight=3.05, gcVars=00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002 {V06}, gcrefRegs=F088 {rbx rdi r12 r13 r14 r15}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rax]
; GC ptr vars -{V75}
@@ -6658,7 +6657,7 @@ RWD40 dq	4034000000000000h	; 20
RWD48 dq	4039000000000000h	; 25
-; Total bytes of code 14316, prolog size 28, PerfScore 7866.28, instruction count 3034, allocated bytes for code 14316 (MethodHash=c958545a) for method System.Data.Tests.DataTableTest2:Select_ByFilter():this (FullOpts)
+; Total bytes of code 14314, prolog size 28, PerfScore 7865.28, instruction count 3033, allocated bytes for code 14314 (MethodHash=c958545a) for method System.Data.Tests.DataTableTest2:Select_ByFilter():this (FullOpts)
; ============================================================
Unwind Info:
```
</div></details>
</div></details>
<details>
<summary>libraries_tests.run.linux.x64.Release.mch</summary>
<div style="margin-left:1em">
<details>
<summary><span style="color:green">-4</span> (<span
style="color:green">-0.03%</span>) : 314396.dasm -
System.Data.Tests.DataTableTest2:Select_ByFilter():this (Instrumented
Tier0)</summary>
<div style="margin-left:1em">
```diff
@@ -2199,13 +2199,11 @@ G_M43941_IG57: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
mov ecx, dword ptr [rbp-0x240]
sub ecx, dword ptr [rax]
- mov eax, ecx
- ; byrRegs -[rax]
- neg eax
- test eax, eax
+ test ecx, ecx
je G_M43941_IG56
mov rdi, 0xD1FFAB1E
call CORINFO_HELP_COUNTPROFILE32
+ ; byrRegs -[rax]
; gcr arg pop 0
mov rdi, gword ptr [rbp-0x50]
; gcrRegs +[rdi]
@@ -2215,7 +2213,7 @@ G_M43941_IG57: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
call [<unknown method>]
; gcrRegs -[rsi rdi]
; gcr arg pop 0
- ;; size=309 bbWeight=1 PerfScore 58.00
+ ;; size=305 bbWeight=1 PerfScore 57.50
G_M43941_IG58: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov eax, dword ptr [rbp-0x5E0]
dec eax
@@ -5412,7 +5410,7 @@ RWD08 dq	4034000000000000h	; 20
RWD16 dq	4039000000000000h	; 25
-; Total bytes of code 15982, prolog size 67, PerfScore 3425.70, instruction count 2755, allocated bytes for code 15982 (MethodHash=c958545a) for method System.Data.Tests.DataTableTest2:Select_ByFilter():this (Instrumented Tier0)
+; Total bytes of code 15978, prolog size 67, PerfScore 3425.20, instruction count 2753, allocated bytes for code 15978 (MethodHash=c958545a) for method System.Data.Tests.DataTableTest2:Select_ByFilter():this (Instrumented Tier0)
; ============================================================
Unwind Info:
```
</div></details>
</div></details>
</div></details>
<details>
<summary>Details</summary>
<div style="margin-left:1em">
#### Size improvements/regressions per collection
|Collection|Contexts with diffs|Improvements|Regressions|Same
size|Improvements (bytes)|Regressions (bytes)|
|---|--:|--:|--:|--:|--:|--:|
|benchmarks.run.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
|benchmarks.run_pgo.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
|benchmarks.run_pgo_optrepeat.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
|coreclr_tests.run.linux.x64.checked.mch|23|<span
style="color:green">23</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-110</span>|<span
style="color:red">+0</span>|
|libraries.crossgen2.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
|libraries.pmi.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
|libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch|1|<span
style="color:green">1</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-2</span>|<span
style="color:red">+0</span>|
|libraries_tests.run.linux.x64.Release.mch|1|<span
style="color:green">1</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-4</span>|<span
style="color:red">+0</span>|
|realworld.run.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
|smoke_tests.nativeaot.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
||25|<span style="color:green">25</span>|<span
style="color:red">0</span>|<span style="color:blue">0</span>|<span
style="color:green">-116</span>|<span style="color:red">+0</span>|
---
#### PerfScore improvements/regressions per collection
|Collection|Contexts with diffs|Improvements|Regressions|Same
PerfScore|Improvements (PerfScore)|Regressions (PerfScore)|PerfScore
Overall in FullOpts|
|---|--:|--:|--:|--:|--:|--:|--:|
|benchmarks.run.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|0.00%|0.00%|0.0000%|
|benchmarks.run_pgo.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|0.00%|0.00%|0.0000%|
|benchmarks.run_pgo_optrepeat.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|0.00%|0.00%|0.0000%|
|coreclr_tests.run.linux.x64.checked.mch|23|<span
style="color:green">22</span>|<span style="color:red">1</span>|<span
style="color:blue">0</span>|<span
style="color:green">-15.50%</span>|<span
style="color:red">+0.34%</span>|<span
style="color:green">-0.0017%</span>|
|libraries.crossgen2.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|0.00%|0.00%|0.0000%|
|libraries.pmi.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|0.00%|0.00%|0.0000%|
|libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch|1|<span
style="color:green">1</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span
style="color:green">-0.01%</span>|0.00%|<span
style="color:green">-0.0000%</span>|
|libraries_tests.run.linux.x64.Release.mch|1|<span
style="color:green">1</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span
style="color:green">-0.01%</span>|0.00%|0.0000%|
|realworld.run.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|0.00%|0.00%|0.0000%|
|smoke_tests.nativeaot.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|0.00%|0.00%|0.0000%|
---
#### Context information
|Collection|Diffed contexts|MinOpts|FullOpts|Missed, base|Missed, diff|
|---|--:|--:|--:|--:|--:|
|benchmarks.run.linux.x64.checked.mch|75,913|2,972|72,941|0 (0.00%)|0
(0.00%)|
|benchmarks.run_pgo.linux.x64.checked.mch|122,785|86,206|36,579|0
(0.00%)|0 (0.00%)|
|benchmarks.run_pgo_optrepeat.linux.x64.checked.mch|76,998|2,939|74,059|0
(0.00%)|0 (0.00%)|
|coreclr_tests.run.linux.x64.checked.mch|577,098|358,595|218,503|0
(0.00%)|0 (0.00%)|
|libraries.crossgen2.linux.x64.checked.mch|269,385|20|269,365|0
(0.00%)|0 (0.00%)|
|libraries.pmi.linux.x64.checked.mch|354,706|8|354,698|0 (0.00%)|0
(0.00%)|
|libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch|387,764|23,607|364,157|0
(0.00%)|0 (0.00%)|
|libraries_tests.run.linux.x64.Release.mch|862,114|603,896|258,218|0
(0.00%)|0 (0.00%)|
|realworld.run.linux.x64.checked.mch|29,264|21|29,243|0 (0.00%)|0
(0.00%)|
|smoke_tests.nativeaot.linux.x64.checked.mch|31,522|13|31,509|0
(0.00%)|0 (0.00%)|
||2,787,549|1,078,277|1,709,272|0 (0.00%)|0 (0.00%)|
---
#### jit-analyze output
</div></details>
AndyAyersMS pushed a commit that referenced this pull request May 14, 2026
…128163)
> [!NOTE]
> This PR was authored with assistance from GitHub Copilot.
Fixesdotnet#128044.
## Problem
createdump SIGSEGVs on Linux when generating a Heap-type minidump for a
process running interpreted code. The crash reproduces locally with the
`InterpreterStack` DumpTests debuggee and matches the CI failure that
prompted `<DumpTypes>Full</DumpTypes>` to be added as a temporary
workaround.
The faulting backtrace is:
```
#0 Thread::IsAddressInStack threads.cpp:6741
#1 Thread::EnumMemoryRegionsWorker threads.cpp:6909 (calls IsAddressInStack(currentSP))
#2 Thread::EnumMemoryRegions threads.cpp
#3 ThreadStore::EnumMemoryRegions
#4 ClrDataAccess::EnumMemDumpAllThreadsStack
#5 ClrDataAccess::EnumMemoryRegionsWorkerHeap (HEAP2-only path)
```
## Root cause
`Thread::m_pInterpThreadContext` was declared as a raw
`InterpThreadContext *`. In non-DAC code that's a normal host pointer,
but in
DAC mode the field's value is a target-process address. When
`IsAddressInStack` (a DAC-callable helper) dereferenced
`m_pInterpThreadContext->pStackStart` it read from a target-process
address
as if it were a host address, which faults inside createdump.
## Fix
Change the field type to `PTR_InterpThreadContext` (DPTR), matching the
treatment of other Thread fields like `m_pFrame`. In non-DAC builds
`DPTR(T)` is just `T*`, so there is no overhead or behavior change. In
DAC
builds the read goes through `__DPtr<T>` and marshals correctly from the
target.
Also remove the `<DumpTypes>Full</DumpTypes>` workaround on the
`InterpreterStack` DumpTests debuggee so the Heap path that originally
failed is exercised again.
## Validation
Locally reproduced the original SIGSEGV on Linux x64 with the auto-dump
mechanism (`DOTNET_DbgMiniDumpType=2` + `DOTNET_Interpreter=MethodA`)
running the `InterpreterStack` debuggee. With this fix applied,
createdump
produces a complete Heap dump (~74 MB) instead of crashing.
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

[wasm] Bump chrome for testing - linux: 119.0.6045.159, windows: 119.0.6045.160 - #5

Open
github-actions[bot] wants to merge 1 commit into
mainfrom
update-chrome-version-6917071168
Open

[wasm] Bump chrome for testing - linux: 119.0.6045.159, windows: 119.0.6045.160#5
github-actions[bot] wants to merge 1 commit into
mainfrom
update-chrome-version-6917071168

Conversation

@github-actions

Copy link
Copy Markdown

No description provided.

AndyAyersMS pushed a commit that referenced this pull request Sep 7, 2024
* bug #1: don't allow for values out of the SerializationRecordType enum range
* bug #2: throw SerializationException rather than KeyNotFoundException when the referenced record is missing or it points to a record of different type
* bug #3: throw SerializationException rather than FormatException when it's being thrown by BinaryReader (or sth else that we use)
* bug #4: document the fact that IOException can be thrown
* bug #5: throw SerializationException rather than OverflowException when parsing the decimal fails
* bug #6: 0 and 17 are illegal values for PrimitiveType enum
* bug #7: throw SerializationException when a surrogate character is read (so far an ArgumentException was thrown)
AndyAyersMS pushed a commit that referenced this pull request Mar 24, 2026
i.e. Fold: (-(x)) == 0 -> x == 0
arm64 asmdiffs
Diffs are based on <span style="color:#1460aa">436,095</span> contexts
(<span style="color:#1460aa">26,618</span> MinOpts, <span
style="color:#1460aa">409,477</span> FullOpts).
<details>
<summary>Overall (<span style="color:green">-40</span> bytes)</summary>
<div style="margin-left:1em">
|Collection|Base size (bytes)|Diff size (bytes)|PerfScore in Diffs
|---|--:|--:|--:|
|libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch|183,146,276|<span
style="color:green">-40</span>|<span style="color:green">-0.09%</span>|
|benchmarks.run.linux.arm64.checked.mch|21,285,888|+0|0.00%|
|smoke_tests.nativeaot.linux.arm64.checked.mch|3,003,400|+0|0.00%|
</div></details>
<details>
<summary>FullOpts (<span style="color:green">-40</span> bytes)</summary>
<div style="margin-left:1em">
|Collection|Base size (bytes)|Diff size (bytes)|PerfScore in Diffs
|---|--:|--:|--:|
|libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch|168,630,412|<span
style="color:green">-40</span>|<span style="color:green">-0.09%</span>|
|benchmarks.run.linux.arm64.checked.mch|20,953,436|+0|0.00%|
|smoke_tests.nativeaot.linux.arm64.checked.mch|3,001,776|+0|0.00%|
</div></details>
<details>
<summary>Example diffs</summary>
<div style="margin-left:1em">
<details>
<summary>libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch</summary>
<div style="margin-left:1em">
<details>
<summary><span style="color:green">-4</span> (<span
style="color:green">-1.27%</span>) : 142473.dasm -
System.IO.Pipelines.Tests.BufferSegmentPoolTest:GetSegments(System.IO.Pipelines.ReadResult):System.Collections.Generic.List`1[System.Buffers.ReadOnlySequenceSegment`1[byte]]
(FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -53,8 +53,7 @@ G_M13215_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byre
G_M13215_IG03: ; bbWeight=0.50, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref, isz
asr w2, w2, dotnet#31
lsl w2, w2, #1
- add w0, w2, w0, ASR dotnet#31
- negs w0, w0
+ adds w0, w2, w0, ASR dotnet#31
bne G_M13215_IG04
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL dotnet#16
@@ -76,7 +75,7 @@ G_M13215_IG03: ; bbWeight=0.50, gcrefRegs=80002 {x1 x19}, byrefRegs=0000
mov x19, x0
; gcrRegs +[x19]
b G_M13215_IG05
- ;; size=68 bbWeight=0.50 PerfScore 6.00
+ ;; size=64 bbWeight=0.50 PerfScore 5.75
G_M13215_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x19-x20]
mov x20, xzr
@@ -179,7 +178,7 @@ G_M13215_IG13: ; bbWeight=0, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=00
b G_M13215_IG06
;; size=12 bbWeight=0 PerfScore 0.00
-; Total bytes of code 316, prolog size 16, PerfScore 140.93, instruction count 79, allocated bytes for code 316 (MethodHash=c6bccc60) for method System.IO.Pipelines.Tests.BufferSegmentPoolTest:GetSegments(System.IO.Pipelines.ReadResult):System.Collections.Generic.List`1[System.Buffers.ReadOnlySequenceSegment`1[byte]] (FullOpts)
+; Total bytes of code 312, prolog size 16, PerfScore 140.68, instruction count 78, allocated bytes for code 312 (MethodHash=c6bccc60) for method System.IO.Pipelines.Tests.BufferSegmentPoolTest:GetSegments(System.IO.Pipelines.ReadResult):System.Collections.Generic.List`1[System.Buffers.ReadOnlySequenceSegment`1[byte]] (FullOpts)
; ============================================================
Unwind Info:
@@ -190,7 +189,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 79 (0x0004f) Actual length = 316 (0x00013c)
+ Function Length : 78 (0x0004e) Actual length = 312 (0x000138)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
```
</div></details>
<details>
<summary><span style="color:green">-4</span> (<span
style="color:green">-0.27%</span>) : 162917.dasm -
System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory():this
(FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -531,10 +531,9 @@ G_M17523_IG25: ; bbWeight=1, gcrefRegs=400002 {x1 x22}, byrefRegs=0000 {}
G_M17523_IG26: ; bbWeight=0.50, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref, isz
asr w0, w0, dotnet#31
lsl w0, w0, #1
- add w0, w0, w2, ASR dotnet#31
- negs w0, w0
+ adds w0, w0, w2, ASR dotnet#31
beq G_M17523_IG29
- ;; size=20 bbWeight=0.50 PerfScore 2.25
+ ;; size=16 bbWeight=0.50 PerfScore 2.00
G_M17523_IG27: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x1 x19]
mov w19, wzr
@@ -733,7 +732,7 @@ G_M17523_IG43: ; bbWeight=0.00, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, b
brk #0
;; size=32 bbWeight=0.00 PerfScore 0.00
-; Total bytes of code 1488, prolog size 36, PerfScore 200.96, instruction count 372, allocated bytes for code 1488 (MethodHash=abb9bb8c) for method System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory():this (FullOpts)
+; Total bytes of code 1484, prolog size 36, PerfScore 200.71, instruction count 371, allocated bytes for code 1484 (MethodHash=abb9bb8c) for method System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory():this (FullOpts)
; ============================================================
Unwind Info:
@@ -744,7 +743,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 372 (0x00174) Actual length = 1488 (0x0005d0)
+ Function Length : 371 (0x00173) Actual length = 1484 (0x0005cc)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
```
</div></details>
<details>
<summary><span style="color:green">-4</span> (<span
style="color:green">-0.26%</span>) : 162915.dasm -
System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory_String():this
(FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -208,7 +208,7 @@
; V197 cse1 [V197,T40] ( 2, 1 ) ref -> x0 "CSE #7: moderate"
; V198 cse2 [V198,T44] ( 2, 1 ) int -> x23 "CSE #4: moderate"
; V199 cse3 [V199,T45] ( 2, 1 ) long -> x1 "CSE #5: moderate"
-; V200 cse4 [V200,T33] ( 3, 1.50) int -> x1 "CSE dotnet#17: moderate"
+; V200 cse4 [V200,T33] ( 3, 1.50) int -> x1 "CSE dotnet#16: moderate"
; V201 rat0 [V201,T01] ( 3, 5.62) byref -> x1 "fgMakeTemp is creating a new local variable"
; V202 rat1 [V202,T07] ( 5, 3.75) ref -> x0 "replacement local"
; V203 rat2 [V203,T37] ( 3, 1.25) long -> x2 "CSE for expectedClsNode"
@@ -623,8 +623,7 @@ G_M55449_IG30: ; bbWeight=1, gcrefRegs=4180002 {x1 x19 x20 x26}, byrefReg
G_M55449_IG31: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
asr w1, w21, dotnet#31
lsl w1, w1, #1
- add w1, w1, w22, ASR dotnet#31
- negs w1, w1
+ adds w1, w1, w22, ASR dotnet#31
bne G_M55449_IG32
mov x1, x19
; gcrRegs +[x1]
@@ -642,7 +641,7 @@ G_M55449_IG31: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=000
; gcrRegs -[x1 x20]
mov w20, #1
b G_M55449_IG33
- ;; size=68 bbWeight=0.50 PerfScore 6.00
+ ;; size=64 bbWeight=0.50 PerfScore 5.75
G_M55449_IG32: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
mov w20, wzr
;; size=4 bbWeight=0.50 PerfScore 0.25
@@ -776,7 +775,7 @@ G_M55449_IG46: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
brk #0
;; size=40 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1516, prolog size 48, PerfScore 174.78, instruction count 379, allocated bytes for code 1516 (MethodHash=a4562766) for method System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory_String():this (FullOpts)
+; Total bytes of code 1512, prolog size 48, PerfScore 174.53, instruction count 378, allocated bytes for code 1512 (MethodHash=a4562766) for method System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory_String():this (FullOpts)
; ============================================================
Unwind Info:
@@ -787,7 +786,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 379 (0x0017b) Actual length = 1516 (0x0005ec)
+ Function Length : 378 (0x0017a) Actual length = 1512 (0x0005e8)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
```
</div></details>
<details>
<summary>+0 (0.00%) : 223365.dasm -
System.Resources.Extensions.DeserializingResourceReader:CompareStringEqualsName(System.String):bool:this
(FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -106,7 +106,7 @@ G_M52056_IG05: ; bbWeight=0.50, gcrefRegs=500000 {x20 x22}, byrefRegs=000
ldr x3, [x3]
blr x3
; gcrRegs -[x0-x1 x20 x22]
- negs w0, w0
+ cmp w0, #0
cset x0, eq
;; size=40 bbWeight=0.50 PerfScore 4.25
G_M52056_IG06: ; bbWeight=0.50, epilog, nogc, extend
```
</div></details>
<details>
<summary><span style="color:green">-4</span> (<span
style="color:green">-0.02%</span>) : 106573.dasm -
System.Data.Tests.DataTableTest2:Select_ByFilter():this
(FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -3678,8 +3678,7 @@ G_M43941_IG97: ; bbWeight=1, gcVars=0000000000000000000000000000000000000
G_M43941_IG98: ; bbWeight=4, gcrefRegs=4780004 {x2 x19 x20 x21 x22 x26}, byrefRegs=0000 {}, byref, isz
ldr w1, [x2, #0x08]
ldr w0, [fp, #0xD1FFAB1E]	// [V74 tmp49]
- sub w1, w0, w1
- negs w1, w1
+ subs w1, w0, w1
beq G_M43941_IG90
ldp w0, w1, [x22, #0x10]
add w1, w1, #1
@@ -3688,7 +3687,7 @@ G_M43941_IG98: ; bbWeight=4, gcrefRegs=4780004 {x2 x19 x20 x21 x22 x26},
ldr w1, [x2, #0x08]
cmp w1, w0
bls G_M43941_IG100
- ;; size=48 bbWeight=4 PerfScore 76.00
+ ;; size=44 bbWeight=4 PerfScore 74.00
G_M43941_IG99: ; bbWeight=3.03, gcVars=00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002 {V06}, gcrefRegs=4780004 {x2 x19 x20 x21 x22 x26}, byrefRegs=0000 {}, gcvars, byref
; GC ptr vars -{V75}
add w1, w0, #1
@@ -7803,7 +7802,7 @@ RWD00 dq	00740053002D0031h, 0067006E00690072h
RWD16 dq	007200740053002Dh, 00310067006E0069h
-; Total bytes of code 18184, prolog size 44, PerfScore 10435.99, instruction count 4546, allocated bytes for code 18184 (MethodHash=c958545a) for method System.Data.Tests.DataTableTest2:Select_ByFilter():this (FullOpts)
+; Total bytes of code 18180, prolog size 44, PerfScore 10433.99, instruction count 4545, allocated bytes for code 18180 (MethodHash=c958545a) for method System.Data.Tests.DataTableTest2:Select_ByFilter():this (FullOpts)
; ============================================================
Unwind Info:
@@ -7814,7 +7813,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 4130 (0x01022) Actual length = 16520 (0x004088)
+ Function Length : 4129 (0x01021) Actual length = 16516 (0x004084)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
```
</div></details>
<details>
<summary><span style="color:green">-4</span> (<span
style="color:green">-0.16%</span>) : 141855.dasm -
System.IO.Pipelines.Tests.PipePoolTests:GetMemoryOverMaxPoolSizeAllocatesArray():this
(FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -595,8 +595,7 @@ G_M36412_IG24: ; bbWeight=1, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefReg
G_M36412_IG25: ; bbWeight=0.50, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
asr w1, w24, dotnet#31
lsl w1, w1, #1
- add w1, w1, w25, ASR dotnet#31
- negs w1, w1
+ adds w1, w1, w25, ASR dotnet#31
bne G_M36412_IG26
mov x1, x20
; gcrRegs +[x1]
@@ -618,7 +617,7 @@ G_M36412_IG25: ; bbWeight=0.50, gcrefRegs=B80000 {x19 x20 x21 x23}, byref
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
b G_M36412_IG27
- ;; size=68 bbWeight=0.50 PerfScore 6.00
+ ;; size=64 bbWeight=0.50 PerfScore 5.75
G_M36412_IG26: ; bbWeight=0.50, gcrefRegs=A80000 {x19 x21 x23}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x20]
mov x20, xzr
@@ -1232,7 +1231,7 @@ RWD16 dq	<unknown method>
dq	G_M36412_IG51
-; Total bytes of code 2528, prolog size 48, PerfScore 347.37, instruction count 632, allocated bytes for code 2528 (MethodHash=f7d471c3) for method System.IO.Pipelines.Tests.PipePoolTests:GetMemoryOverMaxPoolSizeAllocatesArray():this (FullOpts)
+; Total bytes of code 2524, prolog size 48, PerfScore 347.12, instruction count 631, allocated bytes for code 2524 (MethodHash=f7d471c3) for method System.IO.Pipelines.Tests.PipePoolTests:GetMemoryOverMaxPoolSizeAllocatesArray():this (FullOpts)
; ============================================================
Unwind Info:
@@ -1243,7 +1242,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 591 (0x0024f) Actual length = 2364 (0x00093c)
+ Function Length : 590 (0x0024e) Actual length = 2360 (0x000938)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
```
</div></details>
</div></details>
<details>
<summary>benchmarks.run.linux.arm64.checked.mch</summary>
<div style="margin-left:1em">
<details>
<summary>+0 (0.00%) : 3177.dasm -
System.Resources.ResourceReader:CompareStringEqualsName(System.String):bool:this
(FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -106,7 +106,7 @@ G_M1070_IG05: ; bbWeight=0.50, gcrefRegs=500000 {x20 x22}, byrefRegs=0000
ldr x3, [x3]
blr x3
; gcrRegs -[x0-x1 x20 x22]
- negs w0, w0
+ cmp w0, #0
cset x0, eq
;; size=40 bbWeight=0.50 PerfScore 4.25
G_M1070_IG06: ; bbWeight=0.50, epilog, nogc, extend
```
</div></details>
</div></details>
<details>
<summary>smoke_tests.nativeaot.linux.arm64.checked.mch</summary>
<div style="margin-left:1em">
<details>
<summary>+0 (0.00%) : 18583.dasm -
Generics+TestAsyncGVMScenarios:RunAsync() (FullOpts)</summary>
<div style="margin-left:1em">
No diffs found?
</div></details>
<details>
<summary>+0 (0.00%) : 18730.dasm -
Generics+TestAsyncGVMScenarios:AsyncGvm1[System.__Canon]():this
(FullOpts)</summary>
<div style="margin-left:1em">
No diffs found?
</div></details>
<details>
<summary>+0 (0.00%) : 18865.dasm -
Generics+TestAsyncGVMScenarios:AsyncGvm2[System.__Canon]():this
(FullOpts)</summary>
<div style="margin-left:1em">
No diffs found?
</div></details>
<details>
<summary>+0 (0.00%) : 18873.dasm -
System.Threading.Tasks.Task:get_CompletedTask() (FullOpts)</summary>
<div style="margin-left:1em">
No diffs found?
</div></details>
</div></details>
</div></details>
<details>
<summary>Details</summary>
<div style="margin-left:1em">
#### Size improvements/regressions per collection
|Collection|Contexts with diffs|Improvements|Regressions|Same
size|Improvements (bytes)|Regressions (bytes)|
|---|--:|--:|--:|--:|--:|--:|
|libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch|11|<span
style="color:green">10</span>|<span style="color:red">0</span>|<span
style="color:blue">1</span>|<span style="color:green">-40</span>|<span
style="color:red">+0</span>|
|benchmarks.run.linux.arm64.checked.mch|1|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">1</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
|smoke_tests.nativeaot.linux.arm64.checked.mch|4|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">4</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
||16|<span style="color:green">10</span>|<span
style="color:red">0</span>|<span style="color:blue">6</span>|<span
style="color:green">-40</span>|<span style="color:red">+0</span>|
---
#### PerfScore improvements/regressions per collection
|Collection|Contexts with diffs|Improvements|Regressions|Same
PerfScore|Improvements (PerfScore)|Regressions (PerfScore)|PerfScore
Overall in FullOpts|
|---|--:|--:|--:|--:|--:|--:|--:|
|libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch|11|<span
style="color:green">10</span>|<span style="color:red">0</span>|<span
style="color:blue">1</span>|<span
style="color:green">-0.10%</span>|0.00%|<span
style="color:green">-0.0000%</span>|
|benchmarks.run.linux.arm64.checked.mch|1|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">1</span>|0.00%|0.00%|0.0000%|
|smoke_tests.nativeaot.linux.arm64.checked.mch|4|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">4</span>|0.00%|0.00%|0.0000%|
---
#### Context information
|Collection|Diffed contexts|MinOpts|FullOpts|Missed, base|Missed, diff|
|---|--:|--:|--:|--:|--:|
|libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch|354,001|23,273|330,728|0
(0.00%)|0 (0.00%)|
|benchmarks.run.linux.arm64.checked.mch|63,204|3,337|59,867|0 (0.00%)|0
(0.00%)|
|smoke_tests.nativeaot.linux.arm64.checked.mch|18,890|8|18,882|0
(0.00%)|0 (0.00%)|
||436,095|26,618|409,477|0 (0.00%)|0 (0.00%)|
---
#### jit-analyze output
<details>
<summary>libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch</summary>
<div style="margin-left:1em">
```
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 183146276 (overridden on cmd)
Total bytes of diff: 183146236 (overridden on cmd)
Total bytes of delta: -40 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
```
<details>
<summary>Detail diffs</summary>
```
Top file improvements (bytes):
-4 : 162916.dasm (-0.242% of base)
-4 : 141852.dasm (-0.162% of base)
-4 : 141855.dasm (-0.158% of base)
-4 : 141861.dasm (-0.201% of base)
-4 : 162917.dasm (-0.269% of base)
-4 : 142473.dasm (-1.266% of base)
-4 : 142389.dasm (-0.182% of base)
-4 : 162915.dasm (-0.264% of base)
-4 : 162918.dasm (-0.185% of base)
-4 : 106573.dasm (-0.022% of base)
10 total files with Code Size differences (10 improved, 0 regressed), 1 unchanged.
Top method improvements (bytes):
-4 (-0.022% of base) : 106573.dasm - System.Data.Tests.DataTableTest2:Select_ByFilter():this (FullOpts)
-4 (-1.266% of base) : 142473.dasm - System.IO.Pipelines.Tests.BufferSegmentPoolTest:GetSegments(System.IO.Pipelines.ReadResult):System.Collections.Generic.List`1[System.Buffers.ReadOnlySequenceSegment`1[byte]] (FullOpts)
-4 (-0.182% of base) : 142389.dasm - System.IO.Pipelines.Tests.PipelineReaderWriterFacts:ResetAfterCompleteReaderAndWriterWithoutAdvancingClearsEverything():this (FullOpts)
-4 (-0.162% of base) : 141852.dasm - System.IO.Pipelines.Tests.PipePoolTests:GetMemoryAtMaxPoolSizeAllocatesFromPool():this (FullOpts)
-4 (-0.158% of base) : 141855.dasm - System.IO.Pipelines.Tests.PipePoolTests:GetMemoryOverMaxPoolSizeAllocatesArray():this (FullOpts)
-4 (-0.201% of base) : 141861.dasm - System.IO.Pipelines.Tests.PipePoolTests:WritesToArrayPoolByDefault():this (FullOpts)
-4 (-0.242% of base) : 162916.dasm - System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_IMemoryList_MultiBlock():this (FullOpts)
-4 (-0.185% of base) : 162918.dasm - System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_IMemoryList_SingleBlock():this (FullOpts)
-4 (-0.264% of base) : 162915.dasm - System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory_String():this (FullOpts)
-4 (-0.269% of base) : 162917.dasm - System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory():this (FullOpts)
Top method improvements (percentages):
-4 (-1.266% of base) : 142473.dasm - System.IO.Pipelines.Tests.BufferSegmentPoolTest:GetSegments(System.IO.Pipelines.ReadResult):System.Collections.Generic.List`1[System.Buffers.ReadOnlySequenceSegment`1[byte]] (FullOpts)
-4 (-0.269% of base) : 162917.dasm - System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory():this (FullOpts)
-4 (-0.264% of base) : 162915.dasm - System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory_String():this (FullOpts)
-4 (-0.242% of base) : 162916.dasm - System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_IMemoryList_MultiBlock():this (FullOpts)
-4 (-0.201% of base) : 141861.dasm - System.IO.Pipelines.Tests.PipePoolTests:WritesToArrayPoolByDefault():this (FullOpts)
-4 (-0.185% of base) : 162918.dasm - System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_IMemoryList_SingleBlock():this (FullOpts)
-4 (-0.182% of base) : 142389.dasm - System.IO.Pipelines.Tests.PipelineReaderWriterFacts:ResetAfterCompleteReaderAndWriterWithoutAdvancingClearsEverything():this (FullOpts)
-4 (-0.162% of base) : 141852.dasm - System.IO.Pipelines.Tests.PipePoolTests:GetMemoryAtMaxPoolSizeAllocatesFromPool():this (FullOpts)
-4 (-0.158% of base) : 141855.dasm - System.IO.Pipelines.Tests.PipePoolTests:GetMemoryOverMaxPoolSizeAllocatesArray():this (FullOpts)
-4 (-0.022% of base) : 106573.dasm - System.Data.Tests.DataTableTest2:Select_ByFilter():this (FullOpts)
10 total methods with Code Size differences (10 improved, 0 regressed).
```
</details>
--------------------------------------------------------------------------------
</div></details>
<details>
<summary>benchmarks.run.linux.arm64.checked.mch</summary>
<div style="margin-left:1em">
```
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 21285888 (overridden on cmd)
Total bytes of diff: 21285888 (overridden on cmd)
Total bytes of delta: 0 (0.00 % of base)
```
<details>
<summary>Detail diffs</summary>
```
0 total files with Code Size differences (0 improved, 0 regressed), 1 unchanged.
0 total methods with Code Size differences (0 improved, 0 regressed).
```
</details>
--------------------------------------------------------------------------------
</div></details>
</div></details>
x64 asmdiffs
Diffs are based on <span style="color:#1460aa">2,787,549</span> contexts
(<span style="color:#1460aa">1,078,277</span> MinOpts, <span
style="color:#1460aa">1,709,272</span> FullOpts).
<details>
<summary>Overall (<span style="color:green">-116</span> bytes)</summary>
<div style="margin-left:1em">
|Collection|Base size (bytes)|Diff size (bytes)|PerfScore in Diffs
|---|--:|--:|--:|
|coreclr_tests.run.linux.x64.checked.mch|305,501,642|<span
style="color:green">-110</span>|<span
style="color:green">-14.87%</span>|
|libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch|157,729,192|<span
style="color:green">-2</span>|<span style="color:green">-0.01%</span>|
|libraries_tests.run.linux.x64.Release.mch|392,784,680|<span
style="color:green">-4</span>|<span style="color:green">-0.01%</span>|
</div></details>
<details>
<summary>MinOpts (<span style="color:green">-14</span> bytes)</summary>
<div style="margin-left:1em">
|Collection|Base size (bytes)|Diff size (bytes)|PerfScore in Diffs
|---|--:|--:|--:|
|coreclr_tests.run.linux.x64.checked.mch|197,469,852|<span
style="color:green">-10</span>|<span style="color:green">-1.28%</span>|
|libraries_tests.run.linux.x64.Release.mch|215,792,030|<span
style="color:green">-4</span>|<span style="color:green">-0.01%</span>|
</div></details>
<details>
<summary>FullOpts (<span style="color:green">-102</span>
bytes)</summary>
<div style="margin-left:1em">
|Collection|Base size (bytes)|Diff size (bytes)|PerfScore in Diffs
|---|--:|--:|--:|
|coreclr_tests.run.linux.x64.checked.mch|108,031,790|<span
style="color:green">-100</span>|<span
style="color:green">-16.74%</span>|
|libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch|146,383,976|<span
style="color:green">-2</span>|<span style="color:green">-0.01%</span>|
</div></details>
<details>
<summary>Example diffs</summary>
<div style="margin-left:1em">
<details>
<summary>coreclr_tests.run.linux.x64.checked.mch</summary>
<div style="margin-left:1em">
<details>
<summary><span style="color:green">-8</span> (<span
style="color:green">-29.63%</span>) : 199901.dasm -
TestNeg.Program:NegsBinOpSingleLine(int,int):bool (FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -18,23 +18,19 @@ G_M18888_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=0 bbWeight=1 PerfScore 0.00
G_M18888_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
sar edi, 1
- mov eax, edi
- neg eax
setne al
movzx rax, al
- add esi, esi
- mov ecx, esi
- neg ecx
+ shl esi, 1
setne cl
movzx rcx, cl
or eax, ecx
- ;; size=26 bbWeight=1 PerfScore 4.50
+ ;; size=18 bbWeight=1 PerfScore 3.75
G_M18888_IG03: ; bbWeight=1, epilog, nogc, extend
ret ;; size=1 bbWeight=1 PerfScore 1.00
; END METHOD TestNeg.Program:NegsBinOpSingleLine(int,int):bool
-; Total bytes of code 27, prolog size 0, PerfScore 5.50, instruction count 12, allocated bytes for code 27 (MethodHash=d08ab637) for method TestNeg.Program:NegsBinOpSingleLine(int,int):bool (FullOpts)
+; Total bytes of code 19, prolog size 0, PerfScore 4.75, instruction count 8, allocated bytes for code 19 (MethodHash=d08ab637) for method TestNeg.Program:NegsBinOpSingleLine(int,int):bool (FullOpts)
; ============================================================
Unwind Info:
```
</div></details>
<details>
<summary><span style="color:green">-7</span> (<span
style="color:green">-29.17%</span>) : 199894.dasm -
TestNeg.Program:NegsLSR(uint):int (FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -16,20 +16,17 @@
G_M6300_IG01: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
;; size=0 bbWeight=0.50 PerfScore 0.00
G_M6300_IG02: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov eax, -1
+ mov ecx, 1
shr edi, 3
- mov eax, edi
- mov ecx, -1
- mov edx, 1
- neg rax
- mov eax, edx
- cmove eax, ecx
- ;; size=23 bbWeight=0.50 PerfScore 1.00
+ cmovne eax, ecx
+ ;; size=16 bbWeight=0.50 PerfScore 0.62
G_M6300_IG03: ; bbWeight=0.50, epilog, nogc, extend
ret ;; size=1 bbWeight=0.50 PerfScore 0.50
; END METHOD TestNeg.Program:NegsLSR(uint):int
-; Total bytes of code 24, prolog size 0, PerfScore 1.50, instruction count 8, allocated bytes for code 24 (MethodHash=2a8ee763) for method TestNeg.Program:NegsLSR(uint):int (FullOpts)
+; Total bytes of code 17, prolog size 0, PerfScore 1.12, instruction count 5, allocated bytes for code 17 (MethodHash=2a8ee763) for method TestNeg.Program:NegsLSR(uint):int (FullOpts)
; ============================================================
Unwind Info:
```
</div></details>
<details>
<summary><span style="color:green">-7</span> (<span
style="color:green">-29.17%</span>) : 199896.dasm -
TestNeg.Program:NegsLargeShift(uint):int (FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -16,20 +16,17 @@
G_M11276_IG01: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
;; size=0 bbWeight=0.50 PerfScore 0.00
G_M11276_IG02: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov eax, -1
+ mov ecx, 1
shl edi, 4
- mov eax, edi
- mov ecx, -1
- mov edx, 1
- neg rax
- mov eax, edx
- cmove eax, ecx
- ;; size=23 bbWeight=0.50 PerfScore 1.00
+ cmovne eax, ecx
+ ;; size=16 bbWeight=0.50 PerfScore 0.62
G_M11276_IG03: ; bbWeight=0.50, epilog, nogc, extend
ret ;; size=1 bbWeight=0.50 PerfScore 0.50
; END METHOD TestNeg.Program:NegsLargeShift(uint):int
-; Total bytes of code 24, prolog size 0, PerfScore 1.50, instruction count 8, allocated bytes for code 24 (MethodHash=43eed3f3) for method TestNeg.Program:NegsLargeShift(uint):int (FullOpts)
+; Total bytes of code 17, prolog size 0, PerfScore 1.12, instruction count 5, allocated bytes for code 17 (MethodHash=43eed3f3) for method TestNeg.Program:NegsLargeShift(uint):int (FullOpts)
; ============================================================
Unwind Info:
```
</div></details>
<details>
<summary><span style="color:green">-5</span> (<span
style="color:green">-1.71%</span>) : 531325.dasm -
ILGEN_CLASS:ILGEN_METHOD(bool,char,short,int):char (Tier0)</summary>
<div style="margin-left:1em">
```diff
@@ -74,16 +74,14 @@ G_M28265_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov qword ptr [rbp-0x40], rdx
mov rax, qword ptr [rbp-0x40]
mov qword ptr [rbp-0x48], rax
- mov eax, dword ptr [rbp-0x28]
- neg rax
- test rax, rax
+ cmp dword ptr [rbp-0x28], 0
jne SHORT G_M28265_IG03
mov eax, dword ptr [rbp-0x18]
cmp eax, 255
ja SHORT G_M28265_IG06
mov eax, eax
mov byte ptr [rbp-0x04], al
- ;; size=182 bbWeight=1 PerfScore 117.08
+ ;; size=177 bbWeight=1 PerfScore 117.58
G_M28265_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov eax, dword ptr [rbp-0x10]
cmp rax, qword ptr [rbp-0x48]
@@ -116,7 +114,7 @@ RWD16 dq	8000000000000000h	; -0
RWD24 dd	4F0BD98Fh ; 2.34629e+09
-; Total bytes of code 293, prolog size 31, PerfScore 147.42, instruction count 75, allocated bytes for code 293 (MethodHash=d26f9196) for method ILGEN_CLASS:ILGEN_METHOD(bool,char,short,int):char (Tier0)
+; Total bytes of code 288, prolog size 31, PerfScore 147.92, instruction count 73, allocated bytes for code 288 (MethodHash=d26f9196) for method ILGEN_CLASS:ILGEN_METHOD(bool,char,short,int):char (Tier0)
; ============================================================
Unwind Info:
```
</div></details>
<details>
<summary><span style="color:green">-2</span> (<span
style="color:green">-4.17%</span>) : 181410.dasm -
ldc_neg_i4._neg:i4_3(int,int):int (MinOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -30,18 +30,17 @@ G_M1458_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
;; size=5 bbWeight=0.50 PerfScore 0.50
G_M1458_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
xor eax, eax
- neg eax
test eax, eax
sete al
movzx rax, al
- ;; size=12 bbWeight=1 PerfScore 2.00
+ ;; size=10 bbWeight=1 PerfScore 1.75
G_M1458_IG05: ; bbWeight=1, epilog, nogc, extend
add rsp, 16
pop rbp
ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 48, prolog size 16, PerfScore 12.00, instruction count 16, allocated bytes for code 48 (MethodHash=0125fa4d) for method ldc_neg_i4._neg:i4_3(int,int):int (MinOpts)
+; Total bytes of code 46, prolog size 16, PerfScore 11.75, instruction count 15, allocated bytes for code 46 (MethodHash=0125fa4d) for method ldc_neg_i4._neg:i4_3(int,int):int (MinOpts)
; ============================================================
Unwind Info:
```
</div></details>
<details>
<summary><span style="color:green">-3</span> (<span
style="color:green">-5.77%</span>) : 181421.dasm -
ldc_neg_i8._neg:i8_3(long,long):int (MinOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -30,18 +30,17 @@ G_M18290_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
;; size=5 bbWeight=0.50 PerfScore 0.50
G_M18290_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
xor eax, eax
- neg rax
test rax, rax
sete al
movzx rax, al
- ;; size=14 bbWeight=1 PerfScore 2.00
+ ;; size=11 bbWeight=1 PerfScore 1.75
G_M18290_IG05: ; bbWeight=1, epilog, nogc, extend
add rsp, 16
pop rbp
ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 52, prolog size 18, PerfScore 12.00, instruction count 16, allocated bytes for code 52 (MethodHash=ff46b88d) for method ldc_neg_i8._neg:i8_3(long,long):int (MinOpts)
+; Total bytes of code 49, prolog size 18, PerfScore 11.75, instruction count 15, allocated bytes for code 49 (MethodHash=ff46b88d) for method ldc_neg_i8._neg:i8_3(long,long):int (MinOpts)
; ============================================================
Unwind Info:
```
</div></details>
</div></details>
<details>
<summary>libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch</summary>
<div style="margin-left:1em">
<details>
<summary><span style="color:green">-2</span> (<span
style="color:green">-0.01%</span>) : 124444.dasm -
System.Data.Tests.DataTableTest2:Select_ByFilter():this
(FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -3246,7 +3246,6 @@ G_M43941_IG102: ; bbWeight=1, gcVars=000000000000000000000000000000000000
G_M43941_IG103: ; bbWeight=4, gcrefRegs=F009 {rax rbx r12 r13 r14 r15}, byrefRegs=0000 {}, byref, isz
mov esi, dword ptr [rbp-0x30]
sub esi, dword ptr [rax+0x08]
- neg esi
je G_M43941_IG96
inc dword ptr [r13+0x14]
mov rdi, gword ptr [r13+0x08]
@@ -3254,7 +3253,7 @@ G_M43941_IG103: ; bbWeight=4, gcrefRegs=F009 {rax rbx r12 r13 r14 r15}, b
mov esi, dword ptr [r13+0x10]
cmp dword ptr [rdi+0x08], esi
jbe SHORT G_M43941_IG106
- ;; size=31 bbWeight=4 PerfScore 65.00
+ ;; size=29 bbWeight=4 PerfScore 64.00
G_M43941_IG104: ; bbWeight=3.05, gcVars=00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002 {V06}, gcrefRegs=F088 {rbx rdi r12 r13 r14 r15}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rax]
; GC ptr vars -{V75}
@@ -6658,7 +6657,7 @@ RWD40 dq	4034000000000000h	; 20
RWD48 dq	4039000000000000h	; 25
-; Total bytes of code 14316, prolog size 28, PerfScore 7866.28, instruction count 3034, allocated bytes for code 14316 (MethodHash=c958545a) for method System.Data.Tests.DataTableTest2:Select_ByFilter():this (FullOpts)
+; Total bytes of code 14314, prolog size 28, PerfScore 7865.28, instruction count 3033, allocated bytes for code 14314 (MethodHash=c958545a) for method System.Data.Tests.DataTableTest2:Select_ByFilter():this (FullOpts)
; ============================================================
Unwind Info:
```
</div></details>
</div></details>
<details>
<summary>libraries_tests.run.linux.x64.Release.mch</summary>
<div style="margin-left:1em">
<details>
<summary><span style="color:green">-4</span> (<span
style="color:green">-0.03%</span>) : 314396.dasm -
System.Data.Tests.DataTableTest2:Select_ByFilter():this (Instrumented
Tier0)</summary>
<div style="margin-left:1em">
```diff
@@ -2199,13 +2199,11 @@ G_M43941_IG57: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
mov ecx, dword ptr [rbp-0x240]
sub ecx, dword ptr [rax]
- mov eax, ecx
- ; byrRegs -[rax]
- neg eax
- test eax, eax
+ test ecx, ecx
je G_M43941_IG56
mov rdi, 0xD1FFAB1E
call CORINFO_HELP_COUNTPROFILE32
+ ; byrRegs -[rax]
; gcr arg pop 0
mov rdi, gword ptr [rbp-0x50]
; gcrRegs +[rdi]
@@ -2215,7 +2213,7 @@ G_M43941_IG57: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
call [<unknown method>]
; gcrRegs -[rsi rdi]
; gcr arg pop 0
- ;; size=309 bbWeight=1 PerfScore 58.00
+ ;; size=305 bbWeight=1 PerfScore 57.50
G_M43941_IG58: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov eax, dword ptr [rbp-0x5E0]
dec eax
@@ -5412,7 +5410,7 @@ RWD08 dq	4034000000000000h	; 20
RWD16 dq	4039000000000000h	; 25
-; Total bytes of code 15982, prolog size 67, PerfScore 3425.70, instruction count 2755, allocated bytes for code 15982 (MethodHash=c958545a) for method System.Data.Tests.DataTableTest2:Select_ByFilter():this (Instrumented Tier0)
+; Total bytes of code 15978, prolog size 67, PerfScore 3425.20, instruction count 2753, allocated bytes for code 15978 (MethodHash=c958545a) for method System.Data.Tests.DataTableTest2:Select_ByFilter():this (Instrumented Tier0)
; ============================================================
Unwind Info:
```
</div></details>
</div></details>
</div></details>
<details>
<summary>Details</summary>
<div style="margin-left:1em">
#### Size improvements/regressions per collection
|Collection|Contexts with diffs|Improvements|Regressions|Same
size|Improvements (bytes)|Regressions (bytes)|
|---|--:|--:|--:|--:|--:|--:|
|benchmarks.run.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
|benchmarks.run_pgo.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
|benchmarks.run_pgo_optrepeat.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
|coreclr_tests.run.linux.x64.checked.mch|23|<span
style="color:green">23</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-110</span>|<span
style="color:red">+0</span>|
|libraries.crossgen2.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
|libraries.pmi.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
|libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch|1|<span
style="color:green">1</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-2</span>|<span
style="color:red">+0</span>|
|libraries_tests.run.linux.x64.Release.mch|1|<span
style="color:green">1</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-4</span>|<span
style="color:red">+0</span>|
|realworld.run.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
|smoke_tests.nativeaot.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
||25|<span style="color:green">25</span>|<span
style="color:red">0</span>|<span style="color:blue">0</span>|<span
style="color:green">-116</span>|<span style="color:red">+0</span>|
---
#### PerfScore improvements/regressions per collection
|Collection|Contexts with diffs|Improvements|Regressions|Same
PerfScore|Improvements (PerfScore)|Regressions (PerfScore)|PerfScore
Overall in FullOpts|
|---|--:|--:|--:|--:|--:|--:|--:|
|benchmarks.run.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|0.00%|0.00%|0.0000%|
|benchmarks.run_pgo.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|0.00%|0.00%|0.0000%|
|benchmarks.run_pgo_optrepeat.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|0.00%|0.00%|0.0000%|
|coreclr_tests.run.linux.x64.checked.mch|23|<span
style="color:green">22</span>|<span style="color:red">1</span>|<span
style="color:blue">0</span>|<span
style="color:green">-15.50%</span>|<span
style="color:red">+0.34%</span>|<span
style="color:green">-0.0017%</span>|
|libraries.crossgen2.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|0.00%|0.00%|0.0000%|
|libraries.pmi.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|0.00%|0.00%|0.0000%|
|libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch|1|<span
style="color:green">1</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span
style="color:green">-0.01%</span>|0.00%|<span
style="color:green">-0.0000%</span>|
|libraries_tests.run.linux.x64.Release.mch|1|<span
style="color:green">1</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span
style="color:green">-0.01%</span>|0.00%|0.0000%|
|realworld.run.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|0.00%|0.00%|0.0000%|
|smoke_tests.nativeaot.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|0.00%|0.00%|0.0000%|
---
#### Context information
|Collection|Diffed contexts|MinOpts|FullOpts|Missed, base|Missed, diff|
|---|--:|--:|--:|--:|--:|
|benchmarks.run.linux.x64.checked.mch|75,913|2,972|72,941|0 (0.00%)|0
(0.00%)|
|benchmarks.run_pgo.linux.x64.checked.mch|122,785|86,206|36,579|0
(0.00%)|0 (0.00%)|
|benchmarks.run_pgo_optrepeat.linux.x64.checked.mch|76,998|2,939|74,059|0
(0.00%)|0 (0.00%)|
|coreclr_tests.run.linux.x64.checked.mch|577,098|358,595|218,503|0
(0.00%)|0 (0.00%)|
|libraries.crossgen2.linux.x64.checked.mch|269,385|20|269,365|0
(0.00%)|0 (0.00%)|
|libraries.pmi.linux.x64.checked.mch|354,706|8|354,698|0 (0.00%)|0
(0.00%)|
|libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch|387,764|23,607|364,157|0
(0.00%)|0 (0.00%)|
|libraries_tests.run.linux.x64.Release.mch|862,114|603,896|258,218|0
(0.00%)|0 (0.00%)|
|realworld.run.linux.x64.checked.mch|29,264|21|29,243|0 (0.00%)|0
(0.00%)|
|smoke_tests.nativeaot.linux.x64.checked.mch|31,522|13|31,509|0
(0.00%)|0 (0.00%)|
||2,787,549|1,078,277|1,709,272|0 (0.00%)|0 (0.00%)|
---
#### jit-analyze output
</div></details>
AndyAyersMS pushed a commit that referenced this pull request May 14, 2026
…128163)
> [!NOTE]
> This PR was authored with assistance from GitHub Copilot.
Fixesdotnet#128044.
## Problem
createdump SIGSEGVs on Linux when generating a Heap-type minidump for a
process running interpreted code. The crash reproduces locally with the
`InterpreterStack` DumpTests debuggee and matches the CI failure that
prompted `<DumpTypes>Full</DumpTypes>` to be added as a temporary
workaround.
The faulting backtrace is:
```
#0 Thread::IsAddressInStack threads.cpp:6741
#1 Thread::EnumMemoryRegionsWorker threads.cpp:6909 (calls IsAddressInStack(currentSP))
#2 Thread::EnumMemoryRegions threads.cpp
#3 ThreadStore::EnumMemoryRegions
#4 ClrDataAccess::EnumMemDumpAllThreadsStack
#5 ClrDataAccess::EnumMemoryRegionsWorkerHeap (HEAP2-only path)
```
## Root cause
`Thread::m_pInterpThreadContext` was declared as a raw
`InterpThreadContext *`. In non-DAC code that's a normal host pointer,
but in
DAC mode the field's value is a target-process address. When
`IsAddressInStack` (a DAC-callable helper) dereferenced
`m_pInterpThreadContext->pStackStart` it read from a target-process
address
as if it were a host address, which faults inside createdump.
## Fix
Change the field type to `PTR_InterpThreadContext` (DPTR), matching the
treatment of other Thread fields like `m_pFrame`. In non-DAC builds
`DPTR(T)` is just `T*`, so there is no overhead or behavior change. In
DAC
builds the read goes through `__DPtr<T>` and marshals correctly from the
target.
Also remove the `<DumpTypes>Full</DumpTypes>` workaround on the
`InterpreterStack` DumpTests debuggee so the Heap path that originally
failed is exercised again.
## Validation
Locally reproduced the original SIGSEGV on Linux x64 with the auto-dump
mechanism (`DOTNET_DbgMiniDumpType=2` + `DOTNET_Interpreter=MethodA`)
running the `InterpreterStack` debuggee. With this fix applied,
createdump
produces a complete Heap dump (~74 MB) instead of crashing.
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

[wasm] Bump chrome for testing - linux: 119.0.6045.159, windows: 119.0.6045.160 - #5

Open
github-actions[bot] wants to merge 1 commit into
mainfrom
update-chrome-version-6917071168
Open

[wasm] Bump chrome for testing - linux: 119.0.6045.159, windows: 119.0.6045.160#5
github-actions[bot] wants to merge 1 commit into
mainfrom
update-chrome-version-6917071168

Conversation

@github-actions

Copy link
Copy Markdown

No description provided.

AndyAyersMS pushed a commit that referenced this pull request Sep 7, 2024
* bug #1: don't allow for values out of the SerializationRecordType enum range
* bug #2: throw SerializationException rather than KeyNotFoundException when the referenced record is missing or it points to a record of different type
* bug #3: throw SerializationException rather than FormatException when it's being thrown by BinaryReader (or sth else that we use)
* bug #4: document the fact that IOException can be thrown
* bug #5: throw SerializationException rather than OverflowException when parsing the decimal fails
* bug #6: 0 and 17 are illegal values for PrimitiveType enum
* bug #7: throw SerializationException when a surrogate character is read (so far an ArgumentException was thrown)
AndyAyersMS pushed a commit that referenced this pull request Mar 24, 2026
i.e. Fold: (-(x)) == 0 -> x == 0
arm64 asmdiffs
Diffs are based on <span style="color:#1460aa">436,095</span> contexts
(<span style="color:#1460aa">26,618</span> MinOpts, <span
style="color:#1460aa">409,477</span> FullOpts).
<details>
<summary>Overall (<span style="color:green">-40</span> bytes)</summary>
<div style="margin-left:1em">
|Collection|Base size (bytes)|Diff size (bytes)|PerfScore in Diffs
|---|--:|--:|--:|
|libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch|183,146,276|<span
style="color:green">-40</span>|<span style="color:green">-0.09%</span>|
|benchmarks.run.linux.arm64.checked.mch|21,285,888|+0|0.00%|
|smoke_tests.nativeaot.linux.arm64.checked.mch|3,003,400|+0|0.00%|
</div></details>
<details>
<summary>FullOpts (<span style="color:green">-40</span> bytes)</summary>
<div style="margin-left:1em">
|Collection|Base size (bytes)|Diff size (bytes)|PerfScore in Diffs
|---|--:|--:|--:|
|libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch|168,630,412|<span
style="color:green">-40</span>|<span style="color:green">-0.09%</span>|
|benchmarks.run.linux.arm64.checked.mch|20,953,436|+0|0.00%|
|smoke_tests.nativeaot.linux.arm64.checked.mch|3,001,776|+0|0.00%|
</div></details>
<details>
<summary>Example diffs</summary>
<div style="margin-left:1em">
<details>
<summary>libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch</summary>
<div style="margin-left:1em">
<details>
<summary><span style="color:green">-4</span> (<span
style="color:green">-1.27%</span>) : 142473.dasm -
System.IO.Pipelines.Tests.BufferSegmentPoolTest:GetSegments(System.IO.Pipelines.ReadResult):System.Collections.Generic.List`1[System.Buffers.ReadOnlySequenceSegment`1[byte]]
(FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -53,8 +53,7 @@ G_M13215_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0001 {x0}, byre
G_M13215_IG03: ; bbWeight=0.50, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref, isz
asr w2, w2, dotnet#31
lsl w2, w2, #1
- add w0, w2, w0, ASR dotnet#31
- negs w0, w0
+ adds w0, w2, w0, ASR dotnet#31
bne G_M13215_IG04
movz x0, #0xD1FFAB1E
movk x0, #0xD1FFAB1E LSL dotnet#16
@@ -76,7 +75,7 @@ G_M13215_IG03: ; bbWeight=0.50, gcrefRegs=80002 {x1 x19}, byrefRegs=0000
mov x19, x0
; gcrRegs +[x19]
b G_M13215_IG05
- ;; size=68 bbWeight=0.50 PerfScore 6.00
+ ;; size=64 bbWeight=0.50 PerfScore 5.75
G_M13215_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x19-x20]
mov x20, xzr
@@ -179,7 +178,7 @@ G_M13215_IG13: ; bbWeight=0, gcrefRegs=580000 {x19 x20 x22}, byrefRegs=00
b G_M13215_IG06
;; size=12 bbWeight=0 PerfScore 0.00
-; Total bytes of code 316, prolog size 16, PerfScore 140.93, instruction count 79, allocated bytes for code 316 (MethodHash=c6bccc60) for method System.IO.Pipelines.Tests.BufferSegmentPoolTest:GetSegments(System.IO.Pipelines.ReadResult):System.Collections.Generic.List`1[System.Buffers.ReadOnlySequenceSegment`1[byte]] (FullOpts)
+; Total bytes of code 312, prolog size 16, PerfScore 140.68, instruction count 78, allocated bytes for code 312 (MethodHash=c6bccc60) for method System.IO.Pipelines.Tests.BufferSegmentPoolTest:GetSegments(System.IO.Pipelines.ReadResult):System.Collections.Generic.List`1[System.Buffers.ReadOnlySequenceSegment`1[byte]] (FullOpts)
; ============================================================
Unwind Info:
@@ -190,7 +189,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 79 (0x0004f) Actual length = 316 (0x00013c)
+ Function Length : 78 (0x0004e) Actual length = 312 (0x000138)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
```
</div></details>
<details>
<summary><span style="color:green">-4</span> (<span
style="color:green">-0.27%</span>) : 162917.dasm -
System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory():this
(FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -531,10 +531,9 @@ G_M17523_IG25: ; bbWeight=1, gcrefRegs=400002 {x1 x22}, byrefRegs=0000 {}
G_M17523_IG26: ; bbWeight=0.50, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref, isz
asr w0, w0, dotnet#31
lsl w0, w0, #1
- add w0, w0, w2, ASR dotnet#31
- negs w0, w0
+ adds w0, w0, w2, ASR dotnet#31
beq G_M17523_IG29
- ;; size=20 bbWeight=0.50 PerfScore 2.25
+ ;; size=16 bbWeight=0.50 PerfScore 2.00
G_M17523_IG27: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcrRegs -[x1 x19]
mov w19, wzr
@@ -733,7 +732,7 @@ G_M17523_IG43: ; bbWeight=0.00, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, b
brk #0
;; size=32 bbWeight=0.00 PerfScore 0.00
-; Total bytes of code 1488, prolog size 36, PerfScore 200.96, instruction count 372, allocated bytes for code 1488 (MethodHash=abb9bb8c) for method System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory():this (FullOpts)
+; Total bytes of code 1484, prolog size 36, PerfScore 200.71, instruction count 371, allocated bytes for code 1484 (MethodHash=abb9bb8c) for method System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory():this (FullOpts)
; ============================================================
Unwind Info:
@@ -744,7 +743,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 372 (0x00174) Actual length = 1488 (0x0005d0)
+ Function Length : 371 (0x00173) Actual length = 1484 (0x0005cc)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
```
</div></details>
<details>
<summary><span style="color:green">-4</span> (<span
style="color:green">-0.26%</span>) : 162915.dasm -
System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory_String():this
(FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -208,7 +208,7 @@
; V197 cse1 [V197,T40] ( 2, 1 ) ref -> x0 "CSE #7: moderate"
; V198 cse2 [V198,T44] ( 2, 1 ) int -> x23 "CSE #4: moderate"
; V199 cse3 [V199,T45] ( 2, 1 ) long -> x1 "CSE #5: moderate"
-; V200 cse4 [V200,T33] ( 3, 1.50) int -> x1 "CSE dotnet#17: moderate"
+; V200 cse4 [V200,T33] ( 3, 1.50) int -> x1 "CSE dotnet#16: moderate"
; V201 rat0 [V201,T01] ( 3, 5.62) byref -> x1 "fgMakeTemp is creating a new local variable"
; V202 rat1 [V202,T07] ( 5, 3.75) ref -> x0 "replacement local"
; V203 rat2 [V203,T37] ( 3, 1.25) long -> x2 "CSE for expectedClsNode"
@@ -623,8 +623,7 @@ G_M55449_IG30: ; bbWeight=1, gcrefRegs=4180002 {x1 x19 x20 x26}, byrefReg
G_M55449_IG31: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
asr w1, w21, dotnet#31
lsl w1, w1, #1
- add w1, w1, w22, ASR dotnet#31
- negs w1, w1
+ adds w1, w1, w22, ASR dotnet#31
bne G_M55449_IG32
mov x1, x19
; gcrRegs +[x1]
@@ -642,7 +641,7 @@ G_M55449_IG31: ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=000
; gcrRegs -[x1 x20]
mov w20, #1
b G_M55449_IG33
- ;; size=68 bbWeight=0.50 PerfScore 6.00
+ ;; size=64 bbWeight=0.50 PerfScore 5.75
G_M55449_IG32: ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
mov w20, wzr
;; size=4 bbWeight=0.50 PerfScore 0.25
@@ -776,7 +775,7 @@ G_M55449_IG46: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
brk #0
;; size=40 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1516, prolog size 48, PerfScore 174.78, instruction count 379, allocated bytes for code 1516 (MethodHash=a4562766) for method System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory_String():this (FullOpts)
+; Total bytes of code 1512, prolog size 48, PerfScore 174.53, instruction count 378, allocated bytes for code 1512 (MethodHash=a4562766) for method System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory_String():this (FullOpts)
; ============================================================
Unwind Info:
@@ -787,7 +786,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 379 (0x0017b) Actual length = 1516 (0x0005ec)
+ Function Length : 378 (0x0017a) Actual length = 1512 (0x0005e8)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
```
</div></details>
<details>
<summary>+0 (0.00%) : 223365.dasm -
System.Resources.Extensions.DeserializingResourceReader:CompareStringEqualsName(System.String):bool:this
(FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -106,7 +106,7 @@ G_M52056_IG05: ; bbWeight=0.50, gcrefRegs=500000 {x20 x22}, byrefRegs=000
ldr x3, [x3]
blr x3
; gcrRegs -[x0-x1 x20 x22]
- negs w0, w0
+ cmp w0, #0
cset x0, eq
;; size=40 bbWeight=0.50 PerfScore 4.25
G_M52056_IG06: ; bbWeight=0.50, epilog, nogc, extend
```
</div></details>
<details>
<summary><span style="color:green">-4</span> (<span
style="color:green">-0.02%</span>) : 106573.dasm -
System.Data.Tests.DataTableTest2:Select_ByFilter():this
(FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -3678,8 +3678,7 @@ G_M43941_IG97: ; bbWeight=1, gcVars=0000000000000000000000000000000000000
G_M43941_IG98: ; bbWeight=4, gcrefRegs=4780004 {x2 x19 x20 x21 x22 x26}, byrefRegs=0000 {}, byref, isz
ldr w1, [x2, #0x08]
ldr w0, [fp, #0xD1FFAB1E]	// [V74 tmp49]
- sub w1, w0, w1
- negs w1, w1
+ subs w1, w0, w1
beq G_M43941_IG90
ldp w0, w1, [x22, #0x10]
add w1, w1, #1
@@ -3688,7 +3687,7 @@ G_M43941_IG98: ; bbWeight=4, gcrefRegs=4780004 {x2 x19 x20 x21 x22 x26},
ldr w1, [x2, #0x08]
cmp w1, w0
bls G_M43941_IG100
- ;; size=48 bbWeight=4 PerfScore 76.00
+ ;; size=44 bbWeight=4 PerfScore 74.00
G_M43941_IG99: ; bbWeight=3.03, gcVars=00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002 {V06}, gcrefRegs=4780004 {x2 x19 x20 x21 x22 x26}, byrefRegs=0000 {}, gcvars, byref
; GC ptr vars -{V75}
add w1, w0, #1
@@ -7803,7 +7802,7 @@ RWD00 dq	00740053002D0031h, 0067006E00690072h
RWD16 dq	007200740053002Dh, 00310067006E0069h
-; Total bytes of code 18184, prolog size 44, PerfScore 10435.99, instruction count 4546, allocated bytes for code 18184 (MethodHash=c958545a) for method System.Data.Tests.DataTableTest2:Select_ByFilter():this (FullOpts)
+; Total bytes of code 18180, prolog size 44, PerfScore 10433.99, instruction count 4545, allocated bytes for code 18180 (MethodHash=c958545a) for method System.Data.Tests.DataTableTest2:Select_ByFilter():this (FullOpts)
; ============================================================
Unwind Info:
@@ -7814,7 +7813,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 4130 (0x01022) Actual length = 16520 (0x004088)
+ Function Length : 4129 (0x01021) Actual length = 16516 (0x004084)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
```
</div></details>
<details>
<summary><span style="color:green">-4</span> (<span
style="color:green">-0.16%</span>) : 141855.dasm -
System.IO.Pipelines.Tests.PipePoolTests:GetMemoryOverMaxPoolSizeAllocatesArray():this
(FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -595,8 +595,7 @@ G_M36412_IG24: ; bbWeight=1, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefReg
G_M36412_IG25: ; bbWeight=0.50, gcrefRegs=B80000 {x19 x20 x21 x23}, byrefRegs=0000 {}, byref, isz
asr w1, w24, dotnet#31
lsl w1, w1, #1
- add w1, w1, w25, ASR dotnet#31
- negs w1, w1
+ adds w1, w1, w25, ASR dotnet#31
bne G_M36412_IG26
mov x1, x20
; gcrRegs +[x1]
@@ -618,7 +617,7 @@ G_M36412_IG25: ; bbWeight=0.50, gcrefRegs=B80000 {x19 x20 x21 x23}, byref
; gcrRegs -[x1] +[x0]
; gcr arg pop 0
b G_M36412_IG27
- ;; size=68 bbWeight=0.50 PerfScore 6.00
+ ;; size=64 bbWeight=0.50 PerfScore 5.75
G_M36412_IG26: ; bbWeight=0.50, gcrefRegs=A80000 {x19 x21 x23}, byrefRegs=0000 {}, byref
; gcrRegs -[x0 x20]
mov x20, xzr
@@ -1232,7 +1231,7 @@ RWD16 dq	<unknown method>
dq	G_M36412_IG51
-; Total bytes of code 2528, prolog size 48, PerfScore 347.37, instruction count 632, allocated bytes for code 2528 (MethodHash=f7d471c3) for method System.IO.Pipelines.Tests.PipePoolTests:GetMemoryOverMaxPoolSizeAllocatesArray():this (FullOpts)
+; Total bytes of code 2524, prolog size 48, PerfScore 347.12, instruction count 631, allocated bytes for code 2524 (MethodHash=f7d471c3) for method System.IO.Pipelines.Tests.PipePoolTests:GetMemoryOverMaxPoolSizeAllocatesArray():this (FullOpts)
; ============================================================
Unwind Info:
@@ -1243,7 +1242,7 @@ Unwind Info:
E bit : 0
X bit : 0
Vers : 0
- Function Length : 591 (0x0024f) Actual length = 2364 (0x00093c)
+ Function Length : 590 (0x0024e) Actual length = 2360 (0x000938)
---- Epilog scopes ----
---- Scope 0
Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
```
</div></details>
</div></details>
<details>
<summary>benchmarks.run.linux.arm64.checked.mch</summary>
<div style="margin-left:1em">
<details>
<summary>+0 (0.00%) : 3177.dasm -
System.Resources.ResourceReader:CompareStringEqualsName(System.String):bool:this
(FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -106,7 +106,7 @@ G_M1070_IG05: ; bbWeight=0.50, gcrefRegs=500000 {x20 x22}, byrefRegs=0000
ldr x3, [x3]
blr x3
; gcrRegs -[x0-x1 x20 x22]
- negs w0, w0
+ cmp w0, #0
cset x0, eq
;; size=40 bbWeight=0.50 PerfScore 4.25
G_M1070_IG06: ; bbWeight=0.50, epilog, nogc, extend
```
</div></details>
</div></details>
<details>
<summary>smoke_tests.nativeaot.linux.arm64.checked.mch</summary>
<div style="margin-left:1em">
<details>
<summary>+0 (0.00%) : 18583.dasm -
Generics+TestAsyncGVMScenarios:RunAsync() (FullOpts)</summary>
<div style="margin-left:1em">
No diffs found?
</div></details>
<details>
<summary>+0 (0.00%) : 18730.dasm -
Generics+TestAsyncGVMScenarios:AsyncGvm1[System.__Canon]():this
(FullOpts)</summary>
<div style="margin-left:1em">
No diffs found?
</div></details>
<details>
<summary>+0 (0.00%) : 18865.dasm -
Generics+TestAsyncGVMScenarios:AsyncGvm2[System.__Canon]():this
(FullOpts)</summary>
<div style="margin-left:1em">
No diffs found?
</div></details>
<details>
<summary>+0 (0.00%) : 18873.dasm -
System.Threading.Tasks.Task:get_CompletedTask() (FullOpts)</summary>
<div style="margin-left:1em">
No diffs found?
</div></details>
</div></details>
</div></details>
<details>
<summary>Details</summary>
<div style="margin-left:1em">
#### Size improvements/regressions per collection
|Collection|Contexts with diffs|Improvements|Regressions|Same
size|Improvements (bytes)|Regressions (bytes)|
|---|--:|--:|--:|--:|--:|--:|
|libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch|11|<span
style="color:green">10</span>|<span style="color:red">0</span>|<span
style="color:blue">1</span>|<span style="color:green">-40</span>|<span
style="color:red">+0</span>|
|benchmarks.run.linux.arm64.checked.mch|1|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">1</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
|smoke_tests.nativeaot.linux.arm64.checked.mch|4|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">4</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
||16|<span style="color:green">10</span>|<span
style="color:red">0</span>|<span style="color:blue">6</span>|<span
style="color:green">-40</span>|<span style="color:red">+0</span>|
---
#### PerfScore improvements/regressions per collection
|Collection|Contexts with diffs|Improvements|Regressions|Same
PerfScore|Improvements (PerfScore)|Regressions (PerfScore)|PerfScore
Overall in FullOpts|
|---|--:|--:|--:|--:|--:|--:|--:|
|libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch|11|<span
style="color:green">10</span>|<span style="color:red">0</span>|<span
style="color:blue">1</span>|<span
style="color:green">-0.10%</span>|0.00%|<span
style="color:green">-0.0000%</span>|
|benchmarks.run.linux.arm64.checked.mch|1|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">1</span>|0.00%|0.00%|0.0000%|
|smoke_tests.nativeaot.linux.arm64.checked.mch|4|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">4</span>|0.00%|0.00%|0.0000%|
---
#### Context information
|Collection|Diffed contexts|MinOpts|FullOpts|Missed, base|Missed, diff|
|---|--:|--:|--:|--:|--:|
|libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch|354,001|23,273|330,728|0
(0.00%)|0 (0.00%)|
|benchmarks.run.linux.arm64.checked.mch|63,204|3,337|59,867|0 (0.00%)|0
(0.00%)|
|smoke_tests.nativeaot.linux.arm64.checked.mch|18,890|8|18,882|0
(0.00%)|0 (0.00%)|
||436,095|26,618|409,477|0 (0.00%)|0 (0.00%)|
---
#### jit-analyze output
<details>
<summary>libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch</summary>
<div style="margin-left:1em">
```
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 183146276 (overridden on cmd)
Total bytes of diff: 183146236 (overridden on cmd)
Total bytes of delta: -40 (-0.00 % of base)
diff is an improvement.
relative diff is an improvement.
```
<details>
<summary>Detail diffs</summary>
```
Top file improvements (bytes):
-4 : 162916.dasm (-0.242% of base)
-4 : 141852.dasm (-0.162% of base)
-4 : 141855.dasm (-0.158% of base)
-4 : 141861.dasm (-0.201% of base)
-4 : 162917.dasm (-0.269% of base)
-4 : 142473.dasm (-1.266% of base)
-4 : 142389.dasm (-0.182% of base)
-4 : 162915.dasm (-0.264% of base)
-4 : 162918.dasm (-0.185% of base)
-4 : 106573.dasm (-0.022% of base)
10 total files with Code Size differences (10 improved, 0 regressed), 1 unchanged.
Top method improvements (bytes):
-4 (-0.022% of base) : 106573.dasm - System.Data.Tests.DataTableTest2:Select_ByFilter():this (FullOpts)
-4 (-1.266% of base) : 142473.dasm - System.IO.Pipelines.Tests.BufferSegmentPoolTest:GetSegments(System.IO.Pipelines.ReadResult):System.Collections.Generic.List`1[System.Buffers.ReadOnlySequenceSegment`1[byte]] (FullOpts)
-4 (-0.182% of base) : 142389.dasm - System.IO.Pipelines.Tests.PipelineReaderWriterFacts:ResetAfterCompleteReaderAndWriterWithoutAdvancingClearsEverything():this (FullOpts)
-4 (-0.162% of base) : 141852.dasm - System.IO.Pipelines.Tests.PipePoolTests:GetMemoryAtMaxPoolSizeAllocatesFromPool():this (FullOpts)
-4 (-0.158% of base) : 141855.dasm - System.IO.Pipelines.Tests.PipePoolTests:GetMemoryOverMaxPoolSizeAllocatesArray():this (FullOpts)
-4 (-0.201% of base) : 141861.dasm - System.IO.Pipelines.Tests.PipePoolTests:WritesToArrayPoolByDefault():this (FullOpts)
-4 (-0.242% of base) : 162916.dasm - System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_IMemoryList_MultiBlock():this (FullOpts)
-4 (-0.185% of base) : 162918.dasm - System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_IMemoryList_SingleBlock():this (FullOpts)
-4 (-0.264% of base) : 162915.dasm - System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory_String():this (FullOpts)
-4 (-0.269% of base) : 162917.dasm - System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory():this (FullOpts)
Top method improvements (percentages):
-4 (-1.266% of base) : 142473.dasm - System.IO.Pipelines.Tests.BufferSegmentPoolTest:GetSegments(System.IO.Pipelines.ReadResult):System.Collections.Generic.List`1[System.Buffers.ReadOnlySequenceSegment`1[byte]] (FullOpts)
-4 (-0.269% of base) : 162917.dasm - System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory():this (FullOpts)
-4 (-0.264% of base) : 162915.dasm - System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_Memory_String():this (FullOpts)
-4 (-0.242% of base) : 162916.dasm - System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_IMemoryList_MultiBlock():this (FullOpts)
-4 (-0.201% of base) : 141861.dasm - System.IO.Pipelines.Tests.PipePoolTests:WritesToArrayPoolByDefault():this (FullOpts)
-4 (-0.185% of base) : 162918.dasm - System.Memory.Tests.ReadOnlySequenceTryGetTests:Ctor_IMemoryList_SingleBlock():this (FullOpts)
-4 (-0.182% of base) : 142389.dasm - System.IO.Pipelines.Tests.PipelineReaderWriterFacts:ResetAfterCompleteReaderAndWriterWithoutAdvancingClearsEverything():this (FullOpts)
-4 (-0.162% of base) : 141852.dasm - System.IO.Pipelines.Tests.PipePoolTests:GetMemoryAtMaxPoolSizeAllocatesFromPool():this (FullOpts)
-4 (-0.158% of base) : 141855.dasm - System.IO.Pipelines.Tests.PipePoolTests:GetMemoryOverMaxPoolSizeAllocatesArray():this (FullOpts)
-4 (-0.022% of base) : 106573.dasm - System.Data.Tests.DataTableTest2:Select_ByFilter():this (FullOpts)
10 total methods with Code Size differences (10 improved, 0 regressed).
```
</details>
--------------------------------------------------------------------------------
</div></details>
<details>
<summary>benchmarks.run.linux.arm64.checked.mch</summary>
<div style="margin-left:1em">
```
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 21285888 (overridden on cmd)
Total bytes of diff: 21285888 (overridden on cmd)
Total bytes of delta: 0 (0.00 % of base)
```
<details>
<summary>Detail diffs</summary>
```
0 total files with Code Size differences (0 improved, 0 regressed), 1 unchanged.
0 total methods with Code Size differences (0 improved, 0 regressed).
```
</details>
--------------------------------------------------------------------------------
</div></details>
</div></details>
x64 asmdiffs
Diffs are based on <span style="color:#1460aa">2,787,549</span> contexts
(<span style="color:#1460aa">1,078,277</span> MinOpts, <span
style="color:#1460aa">1,709,272</span> FullOpts).
<details>
<summary>Overall (<span style="color:green">-116</span> bytes)</summary>
<div style="margin-left:1em">
|Collection|Base size (bytes)|Diff size (bytes)|PerfScore in Diffs
|---|--:|--:|--:|
|coreclr_tests.run.linux.x64.checked.mch|305,501,642|<span
style="color:green">-110</span>|<span
style="color:green">-14.87%</span>|
|libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch|157,729,192|<span
style="color:green">-2</span>|<span style="color:green">-0.01%</span>|
|libraries_tests.run.linux.x64.Release.mch|392,784,680|<span
style="color:green">-4</span>|<span style="color:green">-0.01%</span>|
</div></details>
<details>
<summary>MinOpts (<span style="color:green">-14</span> bytes)</summary>
<div style="margin-left:1em">
|Collection|Base size (bytes)|Diff size (bytes)|PerfScore in Diffs
|---|--:|--:|--:|
|coreclr_tests.run.linux.x64.checked.mch|197,469,852|<span
style="color:green">-10</span>|<span style="color:green">-1.28%</span>|
|libraries_tests.run.linux.x64.Release.mch|215,792,030|<span
style="color:green">-4</span>|<span style="color:green">-0.01%</span>|
</div></details>
<details>
<summary>FullOpts (<span style="color:green">-102</span>
bytes)</summary>
<div style="margin-left:1em">
|Collection|Base size (bytes)|Diff size (bytes)|PerfScore in Diffs
|---|--:|--:|--:|
|coreclr_tests.run.linux.x64.checked.mch|108,031,790|<span
style="color:green">-100</span>|<span
style="color:green">-16.74%</span>|
|libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch|146,383,976|<span
style="color:green">-2</span>|<span style="color:green">-0.01%</span>|
</div></details>
<details>
<summary>Example diffs</summary>
<div style="margin-left:1em">
<details>
<summary>coreclr_tests.run.linux.x64.checked.mch</summary>
<div style="margin-left:1em">
<details>
<summary><span style="color:green">-8</span> (<span
style="color:green">-29.63%</span>) : 199901.dasm -
TestNeg.Program:NegsBinOpSingleLine(int,int):bool (FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -18,23 +18,19 @@ G_M18888_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=0 bbWeight=1 PerfScore 0.00
G_M18888_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
sar edi, 1
- mov eax, edi
- neg eax
setne al
movzx rax, al
- add esi, esi
- mov ecx, esi
- neg ecx
+ shl esi, 1
setne cl
movzx rcx, cl
or eax, ecx
- ;; size=26 bbWeight=1 PerfScore 4.50
+ ;; size=18 bbWeight=1 PerfScore 3.75
G_M18888_IG03: ; bbWeight=1, epilog, nogc, extend
ret ;; size=1 bbWeight=1 PerfScore 1.00
; END METHOD TestNeg.Program:NegsBinOpSingleLine(int,int):bool
-; Total bytes of code 27, prolog size 0, PerfScore 5.50, instruction count 12, allocated bytes for code 27 (MethodHash=d08ab637) for method TestNeg.Program:NegsBinOpSingleLine(int,int):bool (FullOpts)
+; Total bytes of code 19, prolog size 0, PerfScore 4.75, instruction count 8, allocated bytes for code 19 (MethodHash=d08ab637) for method TestNeg.Program:NegsBinOpSingleLine(int,int):bool (FullOpts)
; ============================================================
Unwind Info:
```
</div></details>
<details>
<summary><span style="color:green">-7</span> (<span
style="color:green">-29.17%</span>) : 199894.dasm -
TestNeg.Program:NegsLSR(uint):int (FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -16,20 +16,17 @@
G_M6300_IG01: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
;; size=0 bbWeight=0.50 PerfScore 0.00
G_M6300_IG02: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov eax, -1
+ mov ecx, 1
shr edi, 3
- mov eax, edi
- mov ecx, -1
- mov edx, 1
- neg rax
- mov eax, edx
- cmove eax, ecx
- ;; size=23 bbWeight=0.50 PerfScore 1.00
+ cmovne eax, ecx
+ ;; size=16 bbWeight=0.50 PerfScore 0.62
G_M6300_IG03: ; bbWeight=0.50, epilog, nogc, extend
ret ;; size=1 bbWeight=0.50 PerfScore 0.50
; END METHOD TestNeg.Program:NegsLSR(uint):int
-; Total bytes of code 24, prolog size 0, PerfScore 1.50, instruction count 8, allocated bytes for code 24 (MethodHash=2a8ee763) for method TestNeg.Program:NegsLSR(uint):int (FullOpts)
+; Total bytes of code 17, prolog size 0, PerfScore 1.12, instruction count 5, allocated bytes for code 17 (MethodHash=2a8ee763) for method TestNeg.Program:NegsLSR(uint):int (FullOpts)
; ============================================================
Unwind Info:
```
</div></details>
<details>
<summary><span style="color:green">-7</span> (<span
style="color:green">-29.17%</span>) : 199896.dasm -
TestNeg.Program:NegsLargeShift(uint):int (FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -16,20 +16,17 @@
G_M11276_IG01: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
;; size=0 bbWeight=0.50 PerfScore 0.00
G_M11276_IG02: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov eax, -1
+ mov ecx, 1
shl edi, 4
- mov eax, edi
- mov ecx, -1
- mov edx, 1
- neg rax
- mov eax, edx
- cmove eax, ecx
- ;; size=23 bbWeight=0.50 PerfScore 1.00
+ cmovne eax, ecx
+ ;; size=16 bbWeight=0.50 PerfScore 0.62
G_M11276_IG03: ; bbWeight=0.50, epilog, nogc, extend
ret ;; size=1 bbWeight=0.50 PerfScore 0.50
; END METHOD TestNeg.Program:NegsLargeShift(uint):int
-; Total bytes of code 24, prolog size 0, PerfScore 1.50, instruction count 8, allocated bytes for code 24 (MethodHash=43eed3f3) for method TestNeg.Program:NegsLargeShift(uint):int (FullOpts)
+; Total bytes of code 17, prolog size 0, PerfScore 1.12, instruction count 5, allocated bytes for code 17 (MethodHash=43eed3f3) for method TestNeg.Program:NegsLargeShift(uint):int (FullOpts)
; ============================================================
Unwind Info:
```
</div></details>
<details>
<summary><span style="color:green">-5</span> (<span
style="color:green">-1.71%</span>) : 531325.dasm -
ILGEN_CLASS:ILGEN_METHOD(bool,char,short,int):char (Tier0)</summary>
<div style="margin-left:1em">
```diff
@@ -74,16 +74,14 @@ G_M28265_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov qword ptr [rbp-0x40], rdx
mov rax, qword ptr [rbp-0x40]
mov qword ptr [rbp-0x48], rax
- mov eax, dword ptr [rbp-0x28]
- neg rax
- test rax, rax
+ cmp dword ptr [rbp-0x28], 0
jne SHORT G_M28265_IG03
mov eax, dword ptr [rbp-0x18]
cmp eax, 255
ja SHORT G_M28265_IG06
mov eax, eax
mov byte ptr [rbp-0x04], al
- ;; size=182 bbWeight=1 PerfScore 117.08
+ ;; size=177 bbWeight=1 PerfScore 117.58
G_M28265_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov eax, dword ptr [rbp-0x10]
cmp rax, qword ptr [rbp-0x48]
@@ -116,7 +114,7 @@ RWD16 dq	8000000000000000h	; -0
RWD24 dd	4F0BD98Fh ; 2.34629e+09
-; Total bytes of code 293, prolog size 31, PerfScore 147.42, instruction count 75, allocated bytes for code 293 (MethodHash=d26f9196) for method ILGEN_CLASS:ILGEN_METHOD(bool,char,short,int):char (Tier0)
+; Total bytes of code 288, prolog size 31, PerfScore 147.92, instruction count 73, allocated bytes for code 288 (MethodHash=d26f9196) for method ILGEN_CLASS:ILGEN_METHOD(bool,char,short,int):char (Tier0)
; ============================================================
Unwind Info:
```
</div></details>
<details>
<summary><span style="color:green">-2</span> (<span
style="color:green">-4.17%</span>) : 181410.dasm -
ldc_neg_i4._neg:i4_3(int,int):int (MinOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -30,18 +30,17 @@ G_M1458_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
;; size=5 bbWeight=0.50 PerfScore 0.50
G_M1458_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
xor eax, eax
- neg eax
test eax, eax
sete al
movzx rax, al
- ;; size=12 bbWeight=1 PerfScore 2.00
+ ;; size=10 bbWeight=1 PerfScore 1.75
G_M1458_IG05: ; bbWeight=1, epilog, nogc, extend
add rsp, 16
pop rbp
ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 48, prolog size 16, PerfScore 12.00, instruction count 16, allocated bytes for code 48 (MethodHash=0125fa4d) for method ldc_neg_i4._neg:i4_3(int,int):int (MinOpts)
+; Total bytes of code 46, prolog size 16, PerfScore 11.75, instruction count 15, allocated bytes for code 46 (MethodHash=0125fa4d) for method ldc_neg_i4._neg:i4_3(int,int):int (MinOpts)
; ============================================================
Unwind Info:
```
</div></details>
<details>
<summary><span style="color:green">-3</span> (<span
style="color:green">-5.77%</span>) : 181421.dasm -
ldc_neg_i8._neg:i8_3(long,long):int (MinOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -30,18 +30,17 @@ G_M18290_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
;; size=5 bbWeight=0.50 PerfScore 0.50
G_M18290_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
xor eax, eax
- neg rax
test rax, rax
sete al
movzx rax, al
- ;; size=14 bbWeight=1 PerfScore 2.00
+ ;; size=11 bbWeight=1 PerfScore 1.75
G_M18290_IG05: ; bbWeight=1, epilog, nogc, extend
add rsp, 16
pop rbp
ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 52, prolog size 18, PerfScore 12.00, instruction count 16, allocated bytes for code 52 (MethodHash=ff46b88d) for method ldc_neg_i8._neg:i8_3(long,long):int (MinOpts)
+; Total bytes of code 49, prolog size 18, PerfScore 11.75, instruction count 15, allocated bytes for code 49 (MethodHash=ff46b88d) for method ldc_neg_i8._neg:i8_3(long,long):int (MinOpts)
; ============================================================
Unwind Info:
```
</div></details>
</div></details>
<details>
<summary>libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch</summary>
<div style="margin-left:1em">
<details>
<summary><span style="color:green">-2</span> (<span
style="color:green">-0.01%</span>) : 124444.dasm -
System.Data.Tests.DataTableTest2:Select_ByFilter():this
(FullOpts)</summary>
<div style="margin-left:1em">
```diff
@@ -3246,7 +3246,6 @@ G_M43941_IG102: ; bbWeight=1, gcVars=000000000000000000000000000000000000
G_M43941_IG103: ; bbWeight=4, gcrefRegs=F009 {rax rbx r12 r13 r14 r15}, byrefRegs=0000 {}, byref, isz
mov esi, dword ptr [rbp-0x30]
sub esi, dword ptr [rax+0x08]
- neg esi
je G_M43941_IG96
inc dword ptr [r13+0x14]
mov rdi, gword ptr [r13+0x08]
@@ -3254,7 +3253,7 @@ G_M43941_IG103: ; bbWeight=4, gcrefRegs=F009 {rax rbx r12 r13 r14 r15}, b
mov esi, dword ptr [r13+0x10]
cmp dword ptr [rdi+0x08], esi
jbe SHORT G_M43941_IG106
- ;; size=31 bbWeight=4 PerfScore 65.00
+ ;; size=29 bbWeight=4 PerfScore 64.00
G_M43941_IG104: ; bbWeight=3.05, gcVars=00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002 {V06}, gcrefRegs=F088 {rbx rdi r12 r13 r14 r15}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rax]
; GC ptr vars -{V75}
@@ -6658,7 +6657,7 @@ RWD40 dq	4034000000000000h	; 20
RWD48 dq	4039000000000000h	; 25
-; Total bytes of code 14316, prolog size 28, PerfScore 7866.28, instruction count 3034, allocated bytes for code 14316 (MethodHash=c958545a) for method System.Data.Tests.DataTableTest2:Select_ByFilter():this (FullOpts)
+; Total bytes of code 14314, prolog size 28, PerfScore 7865.28, instruction count 3033, allocated bytes for code 14314 (MethodHash=c958545a) for method System.Data.Tests.DataTableTest2:Select_ByFilter():this (FullOpts)
; ============================================================
Unwind Info:
```
</div></details>
</div></details>
<details>
<summary>libraries_tests.run.linux.x64.Release.mch</summary>
<div style="margin-left:1em">
<details>
<summary><span style="color:green">-4</span> (<span
style="color:green">-0.03%</span>) : 314396.dasm -
System.Data.Tests.DataTableTest2:Select_ByFilter():this (Instrumented
Tier0)</summary>
<div style="margin-left:1em">
```diff
@@ -2199,13 +2199,11 @@ G_M43941_IG57: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
mov ecx, dword ptr [rbp-0x240]
sub ecx, dword ptr [rax]
- mov eax, ecx
- ; byrRegs -[rax]
- neg eax
- test eax, eax
+ test ecx, ecx
je G_M43941_IG56
mov rdi, 0xD1FFAB1E
call CORINFO_HELP_COUNTPROFILE32
+ ; byrRegs -[rax]
; gcr arg pop 0
mov rdi, gword ptr [rbp-0x50]
; gcrRegs +[rdi]
@@ -2215,7 +2213,7 @@ G_M43941_IG57: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
call [<unknown method>]
; gcrRegs -[rsi rdi]
; gcr arg pop 0
- ;; size=309 bbWeight=1 PerfScore 58.00
+ ;; size=305 bbWeight=1 PerfScore 57.50
G_M43941_IG58: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov eax, dword ptr [rbp-0x5E0]
dec eax
@@ -5412,7 +5410,7 @@ RWD08 dq	4034000000000000h	; 20
RWD16 dq	4039000000000000h	; 25
-; Total bytes of code 15982, prolog size 67, PerfScore 3425.70, instruction count 2755, allocated bytes for code 15982 (MethodHash=c958545a) for method System.Data.Tests.DataTableTest2:Select_ByFilter():this (Instrumented Tier0)
+; Total bytes of code 15978, prolog size 67, PerfScore 3425.20, instruction count 2753, allocated bytes for code 15978 (MethodHash=c958545a) for method System.Data.Tests.DataTableTest2:Select_ByFilter():this (Instrumented Tier0)
; ============================================================
Unwind Info:
```
</div></details>
</div></details>
</div></details>
<details>
<summary>Details</summary>
<div style="margin-left:1em">
#### Size improvements/regressions per collection
|Collection|Contexts with diffs|Improvements|Regressions|Same
size|Improvements (bytes)|Regressions (bytes)|
|---|--:|--:|--:|--:|--:|--:|
|benchmarks.run.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
|benchmarks.run_pgo.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
|benchmarks.run_pgo_optrepeat.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
|coreclr_tests.run.linux.x64.checked.mch|23|<span
style="color:green">23</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-110</span>|<span
style="color:red">+0</span>|
|libraries.crossgen2.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
|libraries.pmi.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
|libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch|1|<span
style="color:green">1</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-2</span>|<span
style="color:red">+0</span>|
|libraries_tests.run.linux.x64.Release.mch|1|<span
style="color:green">1</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-4</span>|<span
style="color:red">+0</span>|
|realworld.run.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
|smoke_tests.nativeaot.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span style="color:green">-0</span>|<span
style="color:red">+0</span>|
||25|<span style="color:green">25</span>|<span
style="color:red">0</span>|<span style="color:blue">0</span>|<span
style="color:green">-116</span>|<span style="color:red">+0</span>|
---
#### PerfScore improvements/regressions per collection
|Collection|Contexts with diffs|Improvements|Regressions|Same
PerfScore|Improvements (PerfScore)|Regressions (PerfScore)|PerfScore
Overall in FullOpts|
|---|--:|--:|--:|--:|--:|--:|--:|
|benchmarks.run.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|0.00%|0.00%|0.0000%|
|benchmarks.run_pgo.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|0.00%|0.00%|0.0000%|
|benchmarks.run_pgo_optrepeat.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|0.00%|0.00%|0.0000%|
|coreclr_tests.run.linux.x64.checked.mch|23|<span
style="color:green">22</span>|<span style="color:red">1</span>|<span
style="color:blue">0</span>|<span
style="color:green">-15.50%</span>|<span
style="color:red">+0.34%</span>|<span
style="color:green">-0.0017%</span>|
|libraries.crossgen2.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|0.00%|0.00%|0.0000%|
|libraries.pmi.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|0.00%|0.00%|0.0000%|
|libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch|1|<span
style="color:green">1</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span
style="color:green">-0.01%</span>|0.00%|<span
style="color:green">-0.0000%</span>|
|libraries_tests.run.linux.x64.Release.mch|1|<span
style="color:green">1</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|<span
style="color:green">-0.01%</span>|0.00%|0.0000%|
|realworld.run.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|0.00%|0.00%|0.0000%|
|smoke_tests.nativeaot.linux.x64.checked.mch|0|<span
style="color:green">0</span>|<span style="color:red">0</span>|<span
style="color:blue">0</span>|0.00%|0.00%|0.0000%|
---
#### Context information
|Collection|Diffed contexts|MinOpts|FullOpts|Missed, base|Missed, diff|
|---|--:|--:|--:|--:|--:|
|benchmarks.run.linux.x64.checked.mch|75,913|2,972|72,941|0 (0.00%)|0
(0.00%)|
|benchmarks.run_pgo.linux.x64.checked.mch|122,785|86,206|36,579|0
(0.00%)|0 (0.00%)|
|benchmarks.run_pgo_optrepeat.linux.x64.checked.mch|76,998|2,939|74,059|0
(0.00%)|0 (0.00%)|
|coreclr_tests.run.linux.x64.checked.mch|577,098|358,595|218,503|0
(0.00%)|0 (0.00%)|
|libraries.crossgen2.linux.x64.checked.mch|269,385|20|269,365|0
(0.00%)|0 (0.00%)|
|libraries.pmi.linux.x64.checked.mch|354,706|8|354,698|0 (0.00%)|0
(0.00%)|
|libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch|387,764|23,607|364,157|0
(0.00%)|0 (0.00%)|
|libraries_tests.run.linux.x64.Release.mch|862,114|603,896|258,218|0
(0.00%)|0 (0.00%)|
|realworld.run.linux.x64.checked.mch|29,264|21|29,243|0 (0.00%)|0
(0.00%)|
|smoke_tests.nativeaot.linux.x64.checked.mch|31,522|13|31,509|0
(0.00%)|0 (0.00%)|
||2,787,549|1,078,277|1,709,272|0 (0.00%)|0 (0.00%)|
---
#### jit-analyze output
</div></details>
AndyAyersMS pushed a commit that referenced this pull request May 14, 2026
…128163)
> [!NOTE]
> This PR was authored with assistance from GitHub Copilot.
Fixesdotnet#128044.
## Problem
createdump SIGSEGVs on Linux when generating a Heap-type minidump for a
process running interpreted code. The crash reproduces locally with the
`InterpreterStack` DumpTests debuggee and matches the CI failure that
prompted `<DumpTypes>Full</DumpTypes>` to be added as a temporary
workaround.
The faulting backtrace is:
```
#0 Thread::IsAddressInStack threads.cpp:6741
#1 Thread::EnumMemoryRegionsWorker threads.cpp:6909 (calls IsAddressInStack(currentSP))
#2 Thread::EnumMemoryRegions threads.cpp
#3 ThreadStore::EnumMemoryRegions
#4 ClrDataAccess::EnumMemDumpAllThreadsStack
#5 ClrDataAccess::EnumMemoryRegionsWorkerHeap (HEAP2-only path)
```
## Root cause
`Thread::m_pInterpThreadContext` was declared as a raw
`InterpThreadContext *`. In non-DAC code that's a normal host pointer,
but in
DAC mode the field's value is a target-process address. When
`IsAddressInStack` (a DAC-callable helper) dereferenced
`m_pInterpThreadContext->pStackStart` it read from a target-process
address
as if it were a host address, which faults inside createdump.
## Fix
Change the field type to `PTR_InterpThreadContext` (DPTR), matching the
treatment of other Thread fields like `m_pFrame`. In non-DAC builds
`DPTR(T)` is just `T*`, so there is no overhead or behavior change. In
DAC
builds the read goes through `__DPtr<T>` and marshals correctly from the
target.
Also remove the `<DumpTypes>Full</DumpTypes>` workaround on the
`InterpreterStack` DumpTests debuggee so the Heap path that originally
failed is exercised again.
## Validation
Locally reproduced the original SIGSEGV on Linux x64 with the auto-dump
mechanism (`DOTNET_DbgMiniDumpType=2` + `DOTNET_Interpreter=MethodA`)
running the `InterpreterStack` debuggee. With this fix applied,
createdump
produces a complete Heap dump (~74 MB) instead of crashing.
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants