Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Test failure: JIT/Methodical/explicit/coverage/expl_float_1_r/expl_float_1_r.dll #92382

Closed
BruceForstall opened this issue Sep 20, 2023 · 15 comments · Fixed by #92938
Closed
Assignees
Labels
arch-arm32 area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI JitStress CLR JIT issues involving JIT internal stress modes os-linux Linux OS (any supported distro)
Milestone

Comments

@BruceForstall
Copy link
Member

Pipeline: runtime-coreclr jitstress-random
job: coreclr linux arm Checked jitstress_random_2 @ (Ubuntu.1804.Arm32.Open)[email protected]/dotnet-buildtools/prereqs:ubuntu-18.04-helix-arm32v7

https://dev.azure.com/dnceng-public/public/_build/results?buildId=413149&view=ms.vss-test-web.build-test-results-tab&runId=9015422&paneView=debug

export DOTNET_TieredCompilation=0
export DOTNET_JitStress=30e
18:12:48.889 Running test: JIT/Methodical/explicit/coverage/expl_float_1_r/expl_float_1_r.dll
System.DataMisalignedException: A datatype misalignment was detected in a load or store instruction.
   at AA.reset()
   at TestApp.RunAllTests()
   at Program.<<Main>$>g__TestExecutor70|0_71(StreamWriter tempLogSw, StreamWriter statsCsvSw, <>c__DisplayClass0_0&)
18:12:48.949 Failed test: JIT/Methodical/explicit/coverage/expl_float_1_r/expl_float_1_r.dll
@BruceForstall BruceForstall added arch-arm32 os-linux Linux OS (any supported distro) JitStress CLR JIT issues involving JIT internal stress modes area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI labels Sep 20, 2023
@BruceForstall BruceForstall added this to the 9.0.0 milestone Sep 20, 2023
@ghost
Copy link

ghost commented Sep 20, 2023

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

Issue Details

Pipeline: runtime-coreclr jitstress-random
job: coreclr linux arm Checked jitstress_random_2 @ (Ubuntu.1804.Arm32.Open)[email protected]/dotnet-buildtools/prereqs:ubuntu-18.04-helix-arm32v7

https://dev.azure.com/dnceng-public/public/_build/results?buildId=413149&view=ms.vss-test-web.build-test-results-tab&runId=9015422&paneView=debug

export DOTNET_TieredCompilation=0
export DOTNET_JitStress=30e
18:12:48.889 Running test: JIT/Methodical/explicit/coverage/expl_float_1_r/expl_float_1_r.dll
System.DataMisalignedException: A datatype misalignment was detected in a load or store instruction.
   at AA.reset()
   at TestApp.RunAllTests()
   at Program.<<Main>$>g__TestExecutor70|0_71(StreamWriter tempLogSw, StreamWriter statsCsvSw, <>c__DisplayClass0_0&)
18:12:48.949 Failed test: JIT/Methodical/explicit/coverage/expl_float_1_r/expl_float_1_r.dll
Author: BruceForstall
Assignees: -
Labels:

arch-arm32, os-linux, JitStress, area-CodeGen-coreclr

Milestone: 9.0.0

@BruceForstall
Copy link
Member Author

@TIHan Since you're recently been looking at a linux-arm32 jitstress failure, can you take this one?

@TIHan
Copy link
Contributor

TIHan commented Sep 21, 2023

I'm able to reproduce it. Still investigating.

@EgorBo
Copy link
Member

EgorBo commented Sep 22, 2023

The test seems to be intentially doing unaligned reads:

[StructLayout(LayoutKind.Explicit)]
internal struct AA
{
    [FieldOffset(3)]
    public byte tmp1;

    [FieldOffset(8)]
    public float q;

    [FieldOffset(47)]
    public float tmp2;
...

Normally it's not an issue for regular ldr/str loads since OS fixes them up but it might be an issue for SIMD-related loads/stores so I bet jitstress triggered some SIMD load for tmp2 - those loads aren't fixable by OS and throw that exception.

@TIHan
Copy link
Contributor

TIHan commented Sep 26, 2023

@EgorBo the simd loads appear to be the same with and without the stress mode.

No Stress

; Assembly listing for method AA:reset() (FullOpts)
; Emitting BLENDED_CODE for generic ARM - Unix
; FullOpts code
; optimized code
; r11 based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
;  V00 OutArgs      [V00    ] (  1,  1   )  struct (52) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V01 tmp1         [V01    ] (  0,  0   )  struct (52) zero-ref    do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <AA>
;* V02 tmp2         [V02    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <AA[]>
;* V03 tmp3         [V03    ] (  0,  0   )  struct (52) zero-ref    do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <AA>
;* V04 tmp4         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <AA[]>
;  V05 tmp5         [V05,T05] (  3,  6   )  struct (52) [sp+0x6C]  do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <AA>
;  V06 tmp6         [V06,T09] (  2,  4   )     ref  ->   r0         class-hnd exact single-def "impAppendStmt" <AA[,,]>
;  V07 tmp7         [V07,T11] (  2,  4   )  struct (52) [sp+0x38]  do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <AA>
;  V08 tmp8         [V08,T10] (  2,  4   )     ref  ->   r0         class-hnd exact single-def "impAppendStmt" <AA[,,]>
;* V09 tmp9         [V09    ] (  0,  0   )  struct (52) zero-ref    do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <AA>
;* V10 tmp10        [V10    ] (  0,  0   )  struct (52) zero-ref    do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <AA>
;* V11 tmp11        [V11    ] (  0,  0   )  struct (52) zero-ref    do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <AA>
;* V12 tmp12        [V12    ] (  0,  0   )  struct (52) zero-ref    do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <AA>
;* V13 tmp13        [V13    ] (  0,  0   )   ubyte  ->  zero-ref    "V01.[003..004)"
;* V14 tmp14        [V14    ] (  0,  0   )   float  ->  zero-ref    "V01.[008..012)"
;* V15 tmp15        [V15    ] (  0,  0   )   float  ->  zero-ref    "V01.[047..051)"
;* V16 tmp16        [V16    ] (  0,  0   )   ubyte  ->  zero-ref    "V03.[003..004)"
;* V17 tmp17        [V17    ] (  0,  0   )   float  ->  zero-ref    "V03.[008..012)"
;* V18 tmp18        [V18    ] (  0,  0   )   float  ->  zero-ref    "V03.[047..051)"
;* V19 tmp19        [V19    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "V09.[003..004)"
;* V20 tmp20        [V20    ] (  0,  0   )   float  ->  zero-ref    single-def "V09.[008..012)"
;* V21 tmp21        [V21,T12] (  0,  0   )   float  ->  zero-ref    single-def "V09.[047..051)"
;* V22 tmp22        [V22    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "V10.[003..004)"
;* V23 tmp23        [V23,T13] (  0,  0   )   float  ->  zero-ref    single-def "V10.[008..012)"
;* V24 tmp24        [V24,T14] (  0,  0   )   float  ->  zero-ref    single-def "V10.[047..051)"
;* V25 tmp25        [V25    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "V11.[003..004)"
;* V26 tmp26        [V26    ] (  0,  0   )   float  ->  zero-ref    single-def "V11.[008..012)"
;* V27 tmp27        [V27,T15] (  0,  0   )   float  ->  zero-ref    single-def "V11.[047..051)"
;* V28 tmp28        [V28    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "V12.[003..004)"
;* V29 tmp29        [V29,T16] (  0,  0   )   float  ->  zero-ref    single-def "V12.[008..012)"
;* V30 tmp30        [V30,T17] (  0,  0   )   float  ->  zero-ref    single-def "V12.[047..051)"
;  V31 tmp31        [V31,T01] (  5, 10   )   byref  ->   r5         single-def "Spilling address for field-by-field copy"
;  V32 tmp32        [V32,T02] (  5, 10   )   byref  ->   r5         single-def "Spilling address for field-by-field copy"
;  V33 tmp33        [V33,T03] (  3,  6   )     ref  ->   r2         single-def "arr expr"
;  V34 tmp34        [V34,T04] (  3,  6   )     ref  ->   r2         single-def "arr expr"
;* V35 cse0         [V35,T18] (  0,  0   )     int  ->  zero-ref    "CSE - aggressive"
;* V36 cse1         [V36,T19] (  0,  0   )     int  ->  zero-ref    "CSE - aggressive"
;  V37 cse2         [V37,T00] (  4,  4   )   float  ->  f17         "CSE - aggressive"
;  V38 cse3         [V38,T06] (  5,  5   )   float  ->  f16         "CSE - aggressive"
;  V39 cse4         [V39,T07] (  5,  5   )     int  ->   r4         "CSE - aggressive"
;  V40 cse5         [V40,T08] (  5,  5   )     int  ->   r4         "CSE - aggressive"
;
; Lcl frame size = 160

G_M27028_IG01:  ;; offset=0x0000
000000      push    {r4,r5,r6,r10,r11,lr}
000004      vpush   {d8-d8}
000008      sub     sp, 160
00000A      add     r11, sp, 184
                                                ;; size=14 bbWeight=1 PerfScore 4.00
G_M27028_IG02:  ;; offset=0x000E
00000E      movw    r2, 0xcc1
000012      movt    r2, 0xefff
000016      ldr     r2, [r2]
000018      and     r2, r2, 1
00001C      cmp     r2, 1
00001E      bne     G_M27028_IG10
                                                ;; size=20 bbWeight=1 PerfScore 6.00
G_M27028_IG03:  ;; offset=0x0022
000022      movw    r4, 0x1e70
000026      movt    r4, 0xeee0
00002A      ldr     r2, [r4]
00002C      movs    r1, 100
00002E      ldr     r0, [r2+0x04]
000030      cmp     r1, r0
000032      bhs     G_M27028_IG12
000036      movw    r1, 0x1458
00003A      adds    r5, r2, r1
00003C      movs    r1, 0
00003E      mov     r0, r5
000040      movs    r2, 52
000042      movw    r12, 0x38c9
000046      movt    r12, 0xf2a3
00004A      blx     r12         // CORINFO_HELP_MEMSET
00004C      movs    r2, 0
00004E      strb    r2, [r5+0x03]
000050      movw    r2, 0x00
000054      movt    r2, 0x42c8
000058      vmov.i2f s16, r2
00005C      vstr    s16, [r5+0x08]
000060      add     r2, r5, 47
000064      movs    r1, 0
000066      vmov.i2f s17, r1
00006A      vmov.f2i r1, s17
00006E      str     r1, [r2]
000070      ldr     r2, [r4+0x04]
000072      movs    r1, 100
000074      ldr     r0, [r2+0x04]
000076      cmp     r1, r0
000078      bhs     G_M27028_IG12
00007C      movw    r1, 0x1458
000080      adds    r5, r2, r1
000082      movs    r1, 0
000084      mov     r0, r5
000086      movs    r2, 52
000088      movw    r12, 0x38c9
00008C      movt    r12, 0xf2a3
000090      blx     r12         // CORINFO_HELP_MEMSET
000092      movs    r2, 0
000094      strb    r2, [r5+0x03]
000096      vstr    s17, [r5+0x08]
00009A      add     r2, r5, 47
00009E      vmov.f2i r1, s17
0000A2      str     r1, [r2]
0000A4      movs    r1, 0
0000A6      add     r0, sp, 108
0000A8      movs    r2, 52
0000AA      movw    r12, 0x38c9
0000AE      movt    r12, 0xf2a3
0000B2      blx     r12         // CORINFO_HELP_MEMSET
0000B4      ldr     r0, [r4+0x08]
0000B6      vstr    s16, [sp+0x74]
0000BA      ldr     r1, [sp+0x6C]
0000BC      str     r1, [sp]
0000BE      ldr     r1, [sp+0x70]
0000C0      str     r1, [sp+0x04]
0000C2      ldr     r1, [sp+0x74]
0000C4      str     r1, [sp+0x08]
0000C6      ldr     r1, [sp+0x78]
0000C8      str     r1, [sp+0x0C]
0000CA      ldr     r1, [sp+0x7C]
0000CC      str     r1, [sp+0x10]
0000CE      ldr     r1, [sp+0x80]
0000D0      str     r1, [sp+0x14]
0000D2      ldr     r1, [sp+0x84]
0000D4      str     r1, [sp+0x18]
0000D6      ldr     r1, [sp+0x88]
0000D8      str     r1, [sp+0x1C]
0000DA      ldr     r1, [sp+0x8C]
0000DC      str     r1, [sp+0x20]
0000DE      ldr     r1, [sp+0x90]
0000E0      str     r1, [sp+0x24]
0000E2      ldr     r1, [sp+0x94]
0000E4      str     r1, [sp+0x28]
0000E6      ldr     r1, [sp+0x98]
0000E8      str     r1, [sp+0x2C]
0000EA      ldr     r1, [sp+0x9C]
0000EC      str     r1, [sp+0x30]
0000EE      movs    r1, 0
0000F0      movs    r2, 99
0000F2      movs    r3, 1
0000F4      movw    lr, 0x3bad
0000F8      movt    lr, 0xec5e
0000FC      blx     lr          // AA[,,]:Set(int,int,int,AA):this
0000FE      movs    r1, 0
000100      add     r0, sp, 56
000102      movs    r2, 52
000104      movw    r12, 0x38c9
000108      movt    r12, 0xf2a3
00010C      blx     r12         // CORINFO_HELP_MEMSET
00010E      ldr     r0, [r4+0x0C]
000110      ldr     r1, [sp+0x38]
000112      str     r1, [sp]
000114      ldr     r1, [sp+0x3C]
000116      str     r1, [sp+0x04]
000118      ldr     r1, [sp+0x40]
00011A      str     r1, [sp+0x08]
00011C      ldr     r1, [sp+0x44]
00011E      str     r1, [sp+0x0C]
000120      ldr     r1, [sp+0x48]
000122      str     r1, [sp+0x10]
000124      ldr     r1, [sp+0x4C]
000126      str     r1, [sp+0x14]
000128      ldr     r1, [sp+0x50]
00012A      str     r1, [sp+0x18]
00012C      ldr     r1, [sp+0x54]
00012E      str     r1, [sp+0x1C]
000130      ldr     r1, [sp+0x58]
000132      str     r1, [sp+0x20]
000134      ldr     r1, [sp+0x5C]
000136      str     r1, [sp+0x24]
000138      ldr     r1, [sp+0x60]
00013A      str     r1, [sp+0x28]
00013C      ldr     r1, [sp+0x64]
00013E      str     r1, [sp+0x2C]
000140      ldr     r1, [sp+0x68]
000142      str     r1, [sp+0x30]
000144      movs    r1, 0
000146      movs    r2, 99
000148      movs    r3, 1
00014A      movw    lr, 0x3bad
00014E      movt    lr, 0xec5e
000152      blx     lr          // AA[,,]:Set(int,int,int,AA):this
000154      movw    r4, 0xb1d8
000158      movt    r4, 0xe9ae
00015C      movs    r1, 0
00015E      mov     r0, r4
000160      movs    r2, 52
000162      movw    r12, 0x38c9
000166      movt    r12, 0xf2a3
00016A      blx     r12         // CORINFO_HELP_MEMSET
00016C      movs    r2, 0
00016E      movw    r1, 0xb1db
000172      movt    r1, 0xe9ae
000176      strb    r2, [r1]
000178      movw    r2, 0xb1e0
00017C      movt    r2, 0xe9ae
000180      vstr    s16, [r2]
000184      movs    r2, 0
000186      movw    r1, 0xb207
00018A      movt    r1, 0xe9ae
00018E      str     r2, [r1]
000190      add     r0, r4, 60
000194      movs    r1, 0
000196      movs    r2, 52
000198      movw    r12, 0x38c9
00019C      movt    r12, 0xf2a3
0001A0      blx     r12         // CORINFO_HELP_MEMSET
0001A2      movs    r2, 0
0001A4      movw    r1, 0xb217
0001A8      movt    r1, 0xe9ae
0001AC      strb    r2, [r1]
                                                ;; size=396 bbWeight=1 PerfScore 153.00
G_M27028_IG04:  ;; offset=0x01AE
0001AE      movw    r1, 0xb21c
0001B2      movt    r1, 0xe9ae
0001B6      str     r2, [r1]
                                                ;; size=10 bbWeight=1 PerfScore 3.00
G_M27028_IG05:  ;; offset=0x01B8
0001B8      movw    r1, 0xb243
0001BC      movt    r1, 0xe9ae
0001C0      str     r2, [r1]
0001C2      movw    r2, 0xcc2
0001C6      movt    r2, 0xefff
0001CA      ldr     r2, [r2]
0001CC      and     r2, r2, 1
0001D0      cmp     r2, 1
0001D2      bne     SHORT G_M27028_IG11
                                                ;; size=28 bbWeight=1 PerfScore 9.00
G_M27028_IG06:  ;; offset=0x01D4
0001D4      add     r0, r4, 120
0001D8      movs    r1, 0
0001DA      movs    r2, 52
0001DC      movw    r12, 0x38c9
0001E0      movt    r12, 0xf2a3
0001E4      blx     r12         // CORINFO_HELP_MEMSET
0001E6      movs    r2, 0
0001E8      movw    r1, 0xb253
0001EC      movt    r1, 0xe9ae
0001F0      strb    r2, [r1]
0001F2      movw    r2, 0xb258
0001F6      movt    r2, 0xe9ae
0001FA      vstr    s16, [r2]
0001FE      movs    r2, 0
000200      movw    r1, 0xb27f
000204      movt    r1, 0xe9ae
000208      str     r2, [r1]
00020A      add     r0, r4, 180
00020E      movs    r1, 0
000210      movs    r2, 52
000212      movw    r12, 0x38c9
000216      movt    r12, 0xf2a3
00021A      blx     r12         // CORINFO_HELP_MEMSET
00021C      movs    r0, 0
00021E      movw    r1, 0xb28f
000222      movt    r1, 0xe9ae
000226      strb    r0, [r1]
                                                ;; size=84 bbWeight=1 PerfScore 27.00
G_M27028_IG07:  ;; offset=0x0228
000228      movw    r1, 0xb294
00022C      movt    r1, 0xe9ae
000230      str     r0, [r1]
                                                ;; size=10 bbWeight=1 PerfScore 3.00
G_M27028_IG08:  ;; offset=0x0232
000232      movw    r1, 0xb2bb
000236      movt    r1, 0xe9ae
00023A      str     r0, [r1]
                                                ;; size=10 bbWeight=1 PerfScore 3.00
G_M27028_IG09:  ;; offset=0x023C
00023C      add     sp, 160
00023E      vpop    {d8-d8}
000242      pop     {r4,r5,r6,r10,r11,pc}
                                                ;; size=10 bbWeight=1 PerfScore 3.00
G_M27028_IG10:  ;; offset=0x0246
000246      movw    r0, 0xca8
00024A      movt    r0, 0xefff
00024E      movs    r1, 1
000250      movw    r3, 0x324b
000254      movt    r3, 0xf2a3
000258      blx     r3          // CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
00025A      b       SHORT G_M27028_IG03
                                                ;; size=22 bbWeight=0 PerfScore 0.00
G_M27028_IG11:  ;; offset=0x025C
00025C      movw    r0, 0xca8
000260      movt    r0, 0xefff
000264      movs    r1, 2
000266      movw    r3, 0x324b
00026A      movt    r3, 0xf2a3
00026E      blx     r3          // CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
000270      b       SHORT G_M27028_IG06
                                                ;; size=22 bbWeight=0 PerfScore 0.00
G_M27028_IG12:  ;; offset=0x0272
000272      movw    r3, 0x2135
000276      movt    r3, 0xf291
00027A      blx     r3          // CORINFO_HELP_RNGCHKFAIL
00027C      bkpt    
                                                ;; size=12 bbWeight=0 PerfScore 0.00

; Total bytes of code 638, prolog size 14, PerfScore 274.80, instruction count 229, allocated bytes for code 638 (MethodHash=b512966b) for method AA:reset() (FullOpts)
; ============================================================

Stress Mode 30e

; Assembly listing for method AA:reset() (FullOpts)
; Emitting BLENDED_CODE for generic ARM - Unix
; FullOpts code
; optimized code
; r11 based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
;  V00 tmp0         [V00,T12] (  1,  1   )     int  ->  [sp+0xA0]  do-not-enreg[V] "GSCookie dummy"
;  V01 OutArgs      [V01    ] (  1,  1   )  struct (52) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V02 tmp2         [V02    ] (  0,  0   )  struct (52) zero-ref    do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <AA>
;* V03 tmp3         [V03    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <AA[]>
;* V04 tmp4         [V04    ] (  0,  0   )  struct (52) zero-ref    do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <AA>
;* V05 tmp5         [V05    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <AA[]>
;  V06 tmp6         [V06,T05] (  3,  6   )  struct (52) [sp+0x6C]  do-not-enreg[SF] ld-addr-op ptr "NewObj constructor temp" <AA>
;  V07 tmp7         [V07,T09] (  2,  4   )     ref  ->   r0         class-hnd exact single-def "impAppendStmt" <AA[,,]>
;  V08 tmp8         [V08,T11] (  2,  4   )  struct (52) [sp+0x38]  do-not-enreg[SF] ld-addr-op ptr "NewObj constructor temp" <AA>
;  V09 tmp9         [V09,T10] (  2,  4   )     ref  ->   r0         class-hnd exact single-def "impAppendStmt" <AA[,,]>
;* V10 tmp10        [V10    ] (  0,  0   )  struct (52) zero-ref    do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <AA>
;* V11 tmp11        [V11    ] (  0,  0   )  struct (52) zero-ref    do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <AA>
;* V12 tmp12        [V12    ] (  0,  0   )  struct (52) zero-ref    do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <AA>
;* V13 tmp13        [V13    ] (  0,  0   )  struct (52) zero-ref    do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <AA>
;* V14 tmp14        [V14    ] (  0,  0   )   ubyte  ->  zero-ref    "V02.[003..004)"
;* V15 tmp15        [V15    ] (  0,  0   )   float  ->  zero-ref    "V02.[008..012)"
;* V16 tmp16        [V16    ] (  0,  0   )   float  ->  zero-ref    "V02.[047..051)"
;* V17 tmp17        [V17    ] (  0,  0   )   ubyte  ->  zero-ref    "V04.[003..004)"
;* V18 tmp18        [V18    ] (  0,  0   )   float  ->  zero-ref    "V04.[008..012)"
;* V19 tmp19        [V19    ] (  0,  0   )   float  ->  zero-ref    "V04.[047..051)"
;* V20 tmp20        [V20    ] (  0,  0   )   ubyte  ->  zero-ref    "V10.[003..004)"
;* V21 tmp21        [V21    ] (  0,  0   )   float  ->  zero-ref    "V10.[008..012)"
;* V22 tmp22        [V22    ] (  0,  0   )   float  ->  zero-ref    "V10.[047..051)"
;* V23 tmp23        [V23    ] (  0,  0   )   ubyte  ->  zero-ref    "V11.[003..004)"
;* V24 tmp24        [V24    ] (  0,  0   )   float  ->  zero-ref    "V11.[008..012)"
;* V25 tmp25        [V25    ] (  0,  0   )   float  ->  zero-ref    "V11.[047..051)"
;* V26 tmp26        [V26    ] (  0,  0   )   ubyte  ->  zero-ref    "V12.[003..004)"
;* V27 tmp27        [V27    ] (  0,  0   )   float  ->  zero-ref    "V12.[008..012)"
;* V28 tmp28        [V28    ] (  0,  0   )   float  ->  zero-ref    "V12.[047..051)"
;* V29 tmp29        [V29    ] (  0,  0   )   ubyte  ->  zero-ref    "V13.[003..004)"
;* V30 tmp30        [V30    ] (  0,  0   )   float  ->  zero-ref    "V13.[008..012)"
;* V31 tmp31        [V31    ] (  0,  0   )   float  ->  zero-ref    "V13.[047..051)"
;  V32 tmp32        [V32,T01] (  5, 10   )   byref  ->   r5         single-def "Spilling address for field-by-field copy"
;  V33 tmp33        [V33,T02] (  5, 10   )   byref  ->   r5         single-def "Spilling address for field-by-field copy"
;  V34 tmp34        [V34,T03] (  3,  6   )     ref  ->   r2         single-def "arr expr"
;  V35 tmp35        [V35,T04] (  3,  6   )     ref  ->   r2         single-def "arr expr"
;  V36 GsCookie     [V36    ] (  1,  1   )     int  ->  [sp+0xA4]  do-not-enreg[X] addr-exposed "GSSecurityCookie"
;  V37 cse0         [V37,T00] ( 10, 10   )   float  ->  f17         "CSE - aggressive"
;  V38 cse1         [V38,T06] (  5,  5   )   float  ->  f16         "CSE - aggressive"
;  V39 cse2         [V39,T07] (  5,  5   )     int  ->   r4         "CSE - aggressive"
;  V40 cse3         [V40,T08] (  5,  5   )     int  ->   r4         "CSE - aggressive"
;
; Lcl frame size = 168

G_M27028_IG01:  ;; offset=0x0000
000000      push    {r4,r5,r6,r10,r11,lr}
000004      vpush   {d8-d8}
000008      sub     sp, 168
00000A      add     r11, sp, 192
00000E      movw    r0, 0x5678
000012      movt    r0, 0x1234
000016      str     r0, [sp+0xA4]
                                                ;; size=24 bbWeight=1 PerfScore 7.00
G_M27028_IG02:  ;; offset=0x0018
000018      movw    r4, 0x1e70
00001C      movt    r4, 0xf110
000020      ldr     r2, [r4]
000022      movs    r1, 100
000024      ldr     r0, [r2+0x04]
000026      cmp     r1, r0
000028      bhs     G_M27028_IG04
00002C      movw    r1, 0x1458
000030      adds    r5, r2, r1
000032      movs    r1, 0
000034      mov     r0, r5
000036      movs    r2, 52
000038      movw    r12, 0x88c9
00003C      movt    r12, 0xf4cb
000040      blx     r12         // CORINFO_HELP_MEMSET
000042      movs    r2, 0
000044      strb    r2, [r5+0x03]
000046      movw    r2, 0x00
00004A      movt    r2, 0x42c8
00004E      vmov.i2f s16, r2
000052      vstr    s16, [r5+0x08]
000056      add     r2, r5, 47
00005A      movs    r1, 0
00005C      vmov.i2f s17, r1
000060      vmov.f2i r1, s17
000064      str     r1, [r2]
000066      ldr     r2, [r4+0x04]
000068      movs    r1, 100
00006A      ldr     r0, [r2+0x04]
00006C      cmp     r1, r0
00006E      bhs     G_M27028_IG04
000072      movw    r1, 0x1458
000076      adds    r5, r2, r1
000078      movs    r1, 0
00007A      mov     r0, r5
00007C      movs    r2, 52
00007E      movw    r12, 0x88c9
000082      movt    r12, 0xf4cb
000086      blx     r12         // CORINFO_HELP_MEMSET
000088      movs    r2, 0
00008A      strb    r2, [r5+0x03]
00008C      vstr    s17, [r5+0x08]
000090      add     r2, r5, 47
000094      vmov.f2i r1, s17
000098      str     r1, [r2]
00009A      movs    r1, 0
00009C      add     r0, sp, 108
00009E      movs    r2, 52
0000A0      movw    r12, 0x88c9
0000A4      movt    r12, 0xf4cb
0000A8      blx     r12         // CORINFO_HELP_MEMSET
0000AA      ldr     r0, [r4+0x08]
0000AC      vstr    s16, [sp+0x74]
0000B0      ldr     r1, [sp+0x6C]
0000B2      str     r1, [sp]
0000B4      ldr     r1, [sp+0x70]
0000B6      str     r1, [sp+0x04]
0000B8      ldr     r1, [sp+0x74]
0000BA      str     r1, [sp+0x08]
0000BC      ldr     r1, [sp+0x78]
0000BE      str     r1, [sp+0x0C]
0000C0      ldr     r1, [sp+0x7C]
0000C2      str     r1, [sp+0x10]
0000C4      ldr     r1, [sp+0x80]
0000C6      str     r1, [sp+0x14]
0000C8      ldr     r1, [sp+0x84]
0000CA      str     r1, [sp+0x18]
0000CC      ldr     r1, [sp+0x88]
0000CE      str     r1, [sp+0x1C]
0000D0      ldr     r1, [sp+0x8C]
0000D2      str     r1, [sp+0x20]
0000D4      ldr     r1, [sp+0x90]
0000D6      str     r1, [sp+0x24]
0000D8      ldr     r1, [sp+0x94]
0000DA      str     r1, [sp+0x28]
0000DC      ldr     r1, [sp+0x98]
0000DE      str     r1, [sp+0x2C]
0000E0      ldr     r1, [sp+0x9C]
0000E2      str     r1, [sp+0x30]
0000E4      movs    r1, 0
0000E6      movs    r2, 99
0000E8      movs    r3, 1
0000EA      movw    lr, 0x3bad
0000EE      movt    lr, 0xee87
0000F2      blx     lr          // AA[,,]:Set(int,int,int,AA):this
0000F4      movs    r1, 0
0000F6      add     r0, sp, 56
0000F8      movs    r2, 52
0000FA      movw    r12, 0x88c9
0000FE      movt    r12, 0xf4cb
000102      blx     r12         // CORINFO_HELP_MEMSET
000104      ldr     r0, [r4+0x0C]
000106      ldr     r1, [sp+0x38]
000108      str     r1, [sp]
00010A      ldr     r1, [sp+0x3C]
00010C      str     r1, [sp+0x04]
00010E      ldr     r1, [sp+0x40]
000110      str     r1, [sp+0x08]
000112      ldr     r1, [sp+0x44]
000114      str     r1, [sp+0x0C]
000116      ldr     r1, [sp+0x48]
000118      str     r1, [sp+0x10]
00011A      ldr     r1, [sp+0x4C]
00011C      str     r1, [sp+0x14]
00011E      ldr     r1, [sp+0x50]
000120      str     r1, [sp+0x18]
000122      ldr     r1, [sp+0x54]
000124      str     r1, [sp+0x1C]
000126      ldr     r1, [sp+0x58]
000128      str     r1, [sp+0x20]
00012A      ldr     r1, [sp+0x5C]
00012C      str     r1, [sp+0x24]
00012E      ldr     r1, [sp+0x60]
000130      str     r1, [sp+0x28]
000132      ldr     r1, [sp+0x64]
000134      str     r1, [sp+0x2C]
000136      ldr     r1, [sp+0x68]
000138      str     r1, [sp+0x30]
00013A      movs    r1, 0
00013C      movs    r2, 99
00013E      movs    r3, 1
000140      movw    lr, 0x3bad
000144      movt    lr, 0xee87
000148      blx     lr          // AA[,,]:Set(int,int,int,AA):this
00014A      movw    r4, 0xb1d8
00014E      movt    r4, 0xebde
000152      movs    r1, 0
000154      mov     r0, r4
000156      movs    r2, 52
000158      movw    r12, 0x88c9
00015C      movt    r12, 0xf4cb
000160      blx     r12         // CORINFO_HELP_MEMSET
000162      movs    r2, 0
000164      movw    r1, 0xb1db
000168      movt    r1, 0xebde
00016C      strb    r2, [r1]
00016E      movw    r2, 0xb1e0
000172      movt    r2, 0xebde
000176      vstr    s16, [r2]
00017A      movw    r2, 0xb207
00017E      movt    r2, 0xebde
000182      vstr    s17, [r2]
000186      add     r0, r4, 60
00018A      movs    r1, 0
00018C      movs    r2, 52
00018E      movw    r12, 0x88c9
000192      movt    r12, 0xf4cb
000196      blx     r12         // CORINFO_HELP_MEMSET
000198      movs    r2, 0
00019A      movw    r1, 0xb217
00019E      movt    r1, 0xebde
0001A2      strb    r2, [r1]
0001A4      movw    r2, 0xb21c
0001A8      movt    r2, 0xebde
0001AC      vstr    s17, [r2]
0001B0      movw    r2, 0xb243
0001B4      movt    r2, 0xebde
0001B8      vstr    s17, [r2]
0001BC      add     r0, r4, 120
0001C0      movs    r1, 0
0001C2      movs    r2, 52
0001C4      movw    r12, 0x88c9
0001C8      movt    r12, 0xf4cb
0001CC      blx     r12         // CORINFO_HELP_MEMSET
0001CE      movs    r2, 0
0001D0      movw    r1, 0xb253
0001D4      movt    r1, 0xebde
0001D8      strb    r2, [r1]
0001DA      movw    r2, 0xb258
0001DE      movt    r2, 0xebde
0001E2      vstr    s16, [r2]
0001E6      movw    r2, 0xb27f
0001EA      movt    r2, 0xebde
0001EE      vstr    s17, [r2]
0001F2      add     r0, r4, 180
0001F6      movs    r1, 0
0001F8      movs    r2, 52
0001FA      movw    r12, 0x88c9
0001FE      movt    r12, 0xf4cb
000202      blx     r12         // CORINFO_HELP_MEMSET
000204      movs    r3, 0
000206      movw    r2, 0xb28f
00020A      movt    r2, 0xebde
00020E      strb    r3, [r2]
000210      movw    r3, 0xb294
000214      movt    r3, 0xebde
000218      vstr    s17, [r3]
00021C      movw    r3, 0xb2bb
000220      movt    r3, 0xebde
000224      vstr    s17, [r3]
000228      movw    r12, 0x5678
00022C      movt    r12, 0x1234
000230      ldr     lr, [sp+0xA4]
000234      cmp     r12, lr
000236      beq     SHORT G_M27028_IG03
000238      movw    r12, 0x8cfd
00023C      movt    r12, 0xf4b9
000240      blx     r12         // CORINFO_HELP_FAIL_FAST
                                                ;; size=554 bbWeight=1 PerfScore 198.00
G_M27028_IG03:  ;; offset=0x0242
000242      add     sp, 168
000244      vpop    {d8-d8}
000248      pop     {r4,r5,r6,r10,r11,pc}
                                                ;; size=10 bbWeight=1 PerfScore 3.00
G_M27028_IG04:  ;; offset=0x024C
00024C      movw    r3, 0x7135
000250      movt    r3, 0xf4b9
000254      blx     r3          // CORINFO_HELP_RNGCHKFAIL
000256      bkpt    
                                                ;; size=12 bbWeight=0 PerfScore 0.00

; Total bytes of code 600, prolog size 24, PerfScore 268.00, instruction count 212, allocated bytes for code 600 (MethodHash=b512966b) for method AA:reset() (FullOpts)
; ============================================================

I see the GSCookie in the stress mode, don't know if that changes things.

@TIHan
Copy link
Contributor

TIHan commented Sep 26, 2023

There are more vstr in the stressmode, so maybe that is where the problem is. vmov are the same.

@TIHan
Copy link
Contributor

TIHan commented Oct 2, 2023

@dotnet/jit-contrib I may need some help with this. See my findings above.

@EgorBo
Copy link
Member

EgorBo commented Oct 2, 2023

@TIHan were you able to debug the exception with lldb/gdb/windbg? it should tell you exactly which instruction caused that. vstr indeed could be the one.

@jakobbotsch
Copy link
Member

Note that the backend knows how to generate unaligned float reads (by generating them as integer loads instead), so the problem might be that GTF_IND_UNALIGNED was dropped/not set (it's usually set by morph). It looks like it could be physical promotion related given the number of promoted locals -- does setting DOTNET_JitEnablePhysicalPromotion=0 fix it?

@TIHan
Copy link
Contributor

TIHan commented Oct 2, 2023

Thank you @EgorBo and @jakobbotsch . I'll try to debug with lldb/gdb and disable physical promotion.

@TIHan
Copy link
Contributor

TIHan commented Oct 2, 2023

@jakobbotsch Setting DOTNET_JitEnablePhysicalPromotion=0 does indeed fix it.

@jakobbotsch
Copy link
Member

Ok, I can grab this one if you'd like.

@TIHan
Copy link
Contributor

TIHan commented Oct 2, 2023

Makes sense; you have more context in that area.

@TIHan TIHan assigned jakobbotsch and unassigned TIHan Oct 2, 2023
@jakobbotsch
Copy link
Member

The illegally aligned access happens here:

00017A      movw    r2, 0xb207
00017E      movt    r2, 0xebde
000182      vstr    s17, [r2]      <- exception
000186      add     r0, r4, 60

That's node [000258] produced by physical promotion here:

STMT00018 ( 0x066[--] ... ??? )
               [000061] nA--G-------                        *  STORE_BLK struct<AA, 52> (copy)
               [000060] H-----------                        +--*  CNS_INT(h) int    -0x11A047D8 static Fseq[_init]
               [000059] ------------                        \--*  LCL_VAR   struct<AA, 52> V10 tmp10         (last use)
Processing block operation [000061] that involves replacements
  dst+003 <- V20 (V10.[003..004)) (last use)
  dst+008 <- V21 (V10.[008..012)) (last use)
  dst+047 <- V22 (V10.[047..051)) (last use)
  Block op remainder: [000..003) [004..008) [012..047) [051..052)
  => Remainder strategy: retain a full block op
New statement:
STMT00018 ( 0x066[--] ... ??? )
               [000261] -A--G-------                        *  COMMA     void  
               [000061] nA--G-------                        +--*  STORE_BLK struct<AA, 52> (copy)
               [000244] H-----------                        |  +--*  CNS_INT(h) int    -0x11A047D8 static Fseq[_init]
               [000059] ------------                        |  \--*  LCL_VAR   struct<AA, 52> V10 tmp10        
               [000260] -A--G-------                        \--*  COMMA     void  
               [000249] nA--G-------                           +--*  STOREIND  ubyte 
               [000248] ------------                           |  +--*  ADD       int   
               [000246] H-----------                           |  |  +--*  CNS_INT(h) int    -0x11A047D8 static Fseq[_init]
               [000247] ------------                           |  |  \--*  CNS_INT   int    3
               [000245] ------------                           |  \--*  LCL_VAR   ubyte  V20 tmp20         (last use)
               [000259] -A--G-------                           \--*  COMMA     void  
               [000254] nA--G-------                              +--*  STOREIND  float 
               [000253] ------------                              |  +--*  ADD       int   
               [000251] H-----------                              |  |  +--*  CNS_INT(h) int    -0x11A047D8 static Fseq[_init]
               [000252] ------------                              |  |  \--*  CNS_INT   int    8
               [000250] ------------                              |  \--*  LCL_VAR   float  V21 tmp21         (last use)
               [000258] nA--G-------                              \--*  STOREIND  float 
               [000257] ------------                                 +--*  ADD       int   
               [000060] H-----------                                 |  +--*  CNS_INT(h) int    -0x11A047D8 static Fseq[_init]
               [000256] ------------                                 |  \--*  CNS_INT   int    47
               [000255] ------------                                 \--*  LCL_VAR   float  V22 tmp22         (last use)

So probably physical promotion needs to add GTF_IND_UNALIGNED in this case.

@jakobbotsch
Copy link
Member

Though we actually expect to handle this misalignment case in morph, but morph only looks for ADD(x, <unaligned offset>) and in this particular case we end up constant folding it. We see the same problem without physical promotion involved for

using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;

public class Program
{
    public static void Main()
    {
        RuntimeHelpers.RunClassConstructor(typeof(BB).TypeHandle);
        Reset(123.0f);
    }

    [MethodImpl(MethodImplOptions.NoInlining)]
    public static void Reset(float f)
    {
        BB.f_init.tmp2 = f;
    }
}

[StructLayout(LayoutKind.Explicit)]
internal struct AA
{
    [FieldOffset(3)]
    public byte tmp1;

    [FieldOffset(8)]
    public float q;

    [FieldOffset(47)]
    public float tmp2;

    public AA(float qq)
    {
        tmp1 = 0;
        tmp2 = 0;
        q = qq;
    }
}

internal struct BB
{
    public static AA f_init;
}

Let me expand morph's recognition, though I'm not sure what the value is of keeping this in there... we would generally expect users to use the ReadUnaligned/WriteUnaligned APIs to interact with unaligned fields.

jakobbotsch added a commit to jakobbotsch/runtime that referenced this issue Oct 3, 2023
The JIT has some backwards compatibility for accessing unaligned float
fields on ARM32. With physical promotion, we can end up with some new
patterns that we didn't handle. Expand the pattern matching to handle a
constant address unaligned address.

Fix dotnet#92382
@ghost ghost added the in-pr There is an active PR which will close this issue when it is merged label Oct 3, 2023
jakobbotsch added a commit that referenced this issue Oct 3, 2023
The JIT has some backwards compatibility for accessing unaligned float
fields on ARM32. With physical promotion, we can end up with some new
patterns that we didn't handle. Expand the pattern matching to handle a
constant address unaligned address.

Fix #92382
@ghost ghost removed the in-pr There is an active PR which will close this issue when it is merged label Oct 3, 2023
GeroL added a commit to GeroL/custom-runtime that referenced this issue Oct 3, 2023
* Minor code cleanup in TensorPrimitives tests (#92575)

* Normalize some test naming

* Alphabetize tests

* Improve mistmatched length tests with all positions of the shorter tensor

* Alphabetize methods in TensorPrimitives.cs

* Update android-bionic.md (#92632)

* Move TargetsCurrent to net9 and add net8 workload (#91480)

* Move TargetsCurrent to net9 and add net8 workload

* Fix version references

* Update src/mono/nuget/Microsoft.NET.Workload.Mono.Toolchain.Current.Manifest/WorkloadManifest.targets.in

* [wasm] build net8 workload

* Update emsdk

* Update current template to reference net9

* Bump 8.0 version used for workloads

* Fix version for latest emscripten packages

* fix typo in 8.0 version used for the workload

* disamiguate templates

* WBT: explicitly use net8.0 projects for template projects

* Update emsdk dependency to get the workload fix

* fix

* Add some addtional workarounds for net8

* Remove extra character

* Fix test

* More wasi fixes

* Add net8 wasi-wasm runtime pack reference

* Add wasi-experimental-net8 workload

* [wasi] Fix use of workload

* [wasm] WBT: Fix test

* wasi: Allow wasi-wasm runtimepacks even when targeting net8

* fix test

---------

Co-authored-by: Ankit Jain <[email protected]>

* Improve nullability check for generic `.ctor` parameters (#92514)

* implement absent generic ctor param check

* fix code style

* Improve nullability check for generic parameters in ctor

`NullabilityInfoContext.CheckParameterMetadataType` didn't have
code paths for parameters in constructors, leading to wrong
nullability results.

The PR adds a code path for constructor parameters.

Fix #92487

* add tests on nullability of ctors and methods with generic parameters

* fix test issues with AOT trimming

* [PERF] Add hybrid globalization testing runs (#89825)

Add blazor hybrid globalization runs. This includes updating the Blazor and iOS test names to take into account hybridGlobalization and setting up a standard for scenario run configs going forward, at least for now. By having the hybridglobaliztion in both the runconfig and the name when different from the default, the names will only update for non-default settings auto-updating PowerBI while the runconfigs will be available whenever necessary.

* JitDump improvements and other minor cleanup (#92510)

* JitDump improvements and other cleanups

* More comment cleanups

* Be consistent in capitalization of `GenTree`

* JIT: Remove CallArgABIInformation::IsStruct (#92635)

Since we store signature types now this bit is no longer necessary.

* [wasi] fixed the order of WASI_AFTER_RUNTIME_LOADED_CALLS (#92552)

* Add DebuggerDisplay to Meter and Instruments (#91496)

* Add net8 wasi workload tests (#92653)

* Add net8 wasi workload tests

* Update eng/testing/tests.wasi.targets

Co-authored-by: Ankit Jain <[email protected]>

* [wasm] CI: trigger WBT on changes to eng/testing/tests.{browser,wasm,wasi}.targets

* Update eng/testing/tests.wasi.targets

* Alias the net8 runtime pack correctly

---------

Co-authored-by: Ankit Jain <[email protected]>

* Update the Windows ARM64 unwinder (#92604)

* Update the Windows ARM64 unwinder

This change updates the Windows ARM64 unwinder to match the current
state in Windows. It contains a fix for a bug that is needed as a basis
for a .NET issue fix.

* Reflect PR feedback

* [mono][llvm] Remove support for llvm versions before 14.x. (#88346)

* Vectorize TensorPrimitives.Min/Max{Magnitude} (#92618)

* Vectorize TensorPrimitives.Min/Max{Magnitude}

* Use AdvSimd.Max/Min

* Rename some parameters/locals for consistency

* Improve HorizontalAggregate

* Move a few helpers

* Avoid scalar path for returning found NaN

* [main] Update dependencies from dotnet/runtime dotnet/source-build-reference-packages dotnet/emsdk dotnet/hotreload-utils dotnet/sdk (#92584)

[main] Update dependencies from dotnet/runtime dotnet/source-build-reference-packages dotnet/emsdk dotnet/hotreload-utils dotnet/sdk
- Coherency Updates:
  - runtime.linux-arm64.Microsoft.NETCore.Runtime.ObjWriter: from 16.0.5-alpha.1.23452.1 to 16.0.5-alpha.1.23472.1 (parent: Microsoft.NET.Workload.Emscripten.Current.Manifest-9.0.100.Transport)
  - runtime.linux-x64.Microsoft.NETCore.Runtime.ObjWriter: from 16.0.5-alpha.1.23452.1 to 16.0.5-alpha.1.23472.1 (parent: Microsoft.NET.Workload.Emscripten.Current.Manifest-9.0.100.Transport)
  - runtime.linux-musl-arm64.Microsoft.NETCore.Runtime.ObjWriter: from 16.0.5-alpha.1.23452.1 to 16.0.5-alpha.1.23472.1 (parent: Microsoft.NET.Workload.Emscripten.Current.Manifest-9.0.100.Transport)
  - runtime.linux-musl-x64.Microsoft.NETCore.Runtime.ObjWriter: from 16.0.5-alpha.1.23452.1 to 16.0.5-alpha.1.23472.1 (parent: Microsoft.NET.Workload.Emscripten.Current.Manifest-9.0.100.Transport)
  - runtime.win-arm64.Microsoft.NETCore.Runtime.ObjWriter: from 16.0.5-alpha.1.23452.1 to 16.0.5-alpha.1.23472.1 (parent: Microsoft.NET.Workload.Emscripten.Current.Manifest-9.0.100.Transport)
  - runtime.win-x64.Microsoft.NETCore.Runtime.ObjWriter: from 16.0.5-alpha.1.23452.1 to 16.0.5-alpha.1.23472.1 (parent: Microsoft.NET.Workload.Emscripten.Current.Manifest-9.0.100.Transport)
  - runtime.osx-arm64.Microsoft.NETCore.Runtime.ObjWriter: from 16.0.5-alpha.1.23452.1 to 16.0.5-alpha.1.23472.1 (parent: Microsoft.NET.Workload.Emscripten.Current.Manifest-9.0.100.Transport)
  - runtime.osx-x64.Microsoft.NETCore.Runtime.ObjWriter: from 16.0.5-alpha.1.23452.1 to 16.0.5-alpha.1.23472.1 (parent: Microsoft.NET.Workload.Emscripten.Current.Manifest-9.0.100.Transport)
  - runtime.linux-arm64.Microsoft.NETCore.Runtime.JIT.Tools: from 16.0.5-alpha.1.23452.1 to 16.0.5-alpha.1.23472.1 (parent: Microsoft.NET.Workload.Emscripten.Current.Manifest-9.0.100.Transport)
  - runtime.linux-x64.Microsoft.NETCore.Runtime.JIT.Tools: from 16.0.5-alpha.1.23452.1 to 16.0.5-alpha.1.23472.1 (parent: Microsoft.NET.Workload.Emscripten.Current.Manifest-9.0.100.Transport)
  - runtime.linux-musl-arm64.Microsoft.NETCore.Runtime.JIT.Tools: from 16.0.5-alpha.1.23452.1 to 16.0.5-alpha.1.23472.1 (parent: Microsoft.NET.Workload.Emscripten.Current.Manifest-9.0.100.Transport)
  - runtime.linux-musl-x64.Microsoft.NETCore.Runtime.JIT.Tools: from 16.0.5-alpha.1.23452.1 to 16.0.5-alpha.1.23472.1 (parent: Microsoft.NET.Workload.Emscripten.Current.Manifest-9.0.100.Transport)
  - runtime.win-arm64.Microsoft.NETCore.Runtime.JIT.Tools: from 16.0.5-alpha.1.23452.1 to 16.0.5-alpha.1.23472.1 (parent: Microsoft.NET.Workload.Emscripten.Current.Manifest-9.0.100.Transport)
  - runtime.win-x64.Microsoft.NETCore.Runtime.JIT.Tools: from 16.0.5-alpha.1.23452.1 to 16.0.5-alpha.1.23472.1 (parent: Microsoft.NET.Workload.Emscripten.Current.Manifest-9.0.100.Transport)
  - runtime.osx-arm64.Microsoft.NETCore.Runtime.JIT.Tools: from 16.0.5-alpha.1.23452.1 to 16.0.5-alpha.1.23472.1 (parent: Microsoft.NET.Workload.Emscripten.Current.Manifest-9.0.100.Transport)
  - runtime.osx-x64.Microsoft.NETCore.Runtime.JIT.Tools: from 16.0.5-alpha.1.23452.1 to 16.0.5-alpha.1.23472.1 (parent: Microsoft.NET.Workload.Emscripten.Current.Manifest-9.0.100.Transport)
  - runtime.linux-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk: from 16.0.5-alpha.1.23452.1 to 16.0.5-alpha.1.23472.1 (parent: Microsoft.NET.Workload.Emscripten.Current.Manifest-9.0.100.Transport)
  - runtime.linux-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools: from 16.0.5-alpha.1.23452.1 to 16.0.5-alpha.1.23472.1 (parent: Microsoft.NET.Workload.Emscripten.Current.Manifest-9.0.100.Transport)
  - runtime.linux-musl-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk: from 16.0.5-alpha.1.23452.1 to 16.0.5-alpha.1.23472.1 (parent: Microsoft.NET.Workload.Emscripten.Current.Manifest-9.0.100.Transport)
  - runtime.linux-musl-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools: from 16.0.5-alpha.1.23452.1 to 16.0.5-alpha.1.23472.1 (parent: Microsoft.NET.Workload.Emscripten.Current.Manifest-9.0.100.Transport)
  - runtime.linux-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk: from 16.0.5-alpha.1.23452.1 to 16.0.5-alpha.1.23472.1 (parent: Microsoft.NET.Workload.Emscripten.Current.Manifest-9.0.100.Transport)
  - runtime.linux-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools: from 16.0.5-alpha.1.23452.1 to 16.0.5-alpha.1.23472.1 (parent: Microsoft.NET.Workload.Emscripten.Current.Manifest-9.0.100.Transport)
  - runtime.linux-musl-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk: from 16.0.5-alpha.1.23452.1 to 16.0.5-alpha.1.23472.1 (parent: Microsoft.NET.Workload.Emscripten.Current.Manifest-9.0.100.Transport)
  - runtime.linux-musl-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools: from 16.0.5-alpha.1.23452.1 to 16.0.5-alpha.1.23472.1 (parent: Microsoft.NET.Workload.Emscripten.Current.Manifest-9.0.100.Transport)
  - runtime.win-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk: from 16.0.5-alpha.1.23452.1 to 16.0.5-alpha.1.23472.1 (parent: Microsoft.NET.Workload.Emscripten.Current.Manifest-9.0.100.Transport)
  - runtime.win-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools: from 16.0.5-alpha.1.23452.1 to 16.0.5-alpha.1.23472.1 (parent: Microsoft.NET.Workload.Emscripten.Current.Manifest-9.0.100.Transport)
  - runtime.osx-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk: from 16.0.5-alpha.1.23452.1 to 16.0.5-alpha.1.23472.1 (parent: Microsoft.NET.Workload.Emscripten.Current.Manifest-9.0.100.Transport)
  - runtime.osx-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools: from 16.0.5-alpha.1.23452.1 to 16.0.5-alpha.1.23472.1 (parent: Microsoft.NET.Workload.Emscripten.Current.Manifest-9.0.100.Transport)
  - runtime.osx-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk: from 16.0.5-alpha.1.23452.1 to 16.0.5-alpha.1.23472.1 (parent: Microsoft.NET.Workload.Emscripten.Current.Manifest-9.0.100.Transport)
  - runtime.osx-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools: from 16.0.5-alpha.1.23452.1 to 16.0.5-alpha.1.23472.1 (parent: Microsoft.NET.Workload.Emscripten.Current.Manifest-9.0.100.Transport)

 - Merge branch 'main' into darc-main-be922536-a638-4652-9241-ddc0996cfe5a

* Avoiding trying to load the native library Microsoft.DiaSymReader.Native.<arch>.dll on Linux (#92492)

* 92278: add DFEATURE_ISYM_READER definition only for windows

---------

Co-authored-by: Andrey.Kudashkin <[email protected]>
Co-authored-by: Jan Kotas <[email protected]>

* Convert SpinWait to QCall (#92675)

* define bool as Interop.BOOL to prevent upper bytes setting native bool (#92679)

* Remove all PGO assets except for the runtime PGO archive. (#92668)

* Stop setting separate properties for BUNDLE_PROBE, HOSTPOLICY_EMBEDDED, PINVOKE_OVERRIDE (#92448)

* Make config binding gen incremental (#89587)

* Make config binding gen incremental

* Iterate on implementation

* Add incremental tests & driver

* Make incremental tests pass and revert functional regression

* Address failing tests

* Make tests pass

* Suppress diagnostic

* Address feedback on diag info creation

* Refactor member access expr parsing to indicate assumptions

* Address feedback & do misc clean up

* Adjust model to minimize baseline diff / misc clean up

* Extend preinitialization interpreter (#92470)

Things that I added:

* Support for `typeof(T) == typeof(Bar)` (this will be useful later, we'll eventually be able to also freeze these).
* Support static interface method calls
* Constrained method calls on valuetypes
* More `ReadOnlySpan` construction patterns, `.Length`
* More indirect load/store support

Contributes to #78681. To full resolve this, we need to fix up things so we can answer `Sse2.IsSupported`.

* Make it possible to preinitialize HW intrinsic IsSupported (#92666)

* Move the IL rewriting for HW intrinsics `IsSuported` calls to `ILProvider` from `RyuJitCompilation`
* Also rewrite constant true/false

* [mono][aot] Type load checks do not fail at compile time but produce a runtime exception (#91261)

* Enable tests.

* When AOTing, type checks do not fail compilation but create a runtime exception.

* Cleaned up type load error cleaning. TypeLoadException icall now has a message with type name.

* Removed another instance of indiscriminate exception clearing.

* Fixed build warning.

* Using class const instead of string const. Reverted some compile to runtime errors that were not necessary for the unit tests.

* White space.

* Fixed build warning.

* Trying to fix weird AOT errors, fixed type load throw function.

* Fixed build error.

* Special handling for classes that are NULL.

* Providing for a null klass when generating exception.

* Removed flow control directive from macro.

* Fixed stack corruption.

* Attempt to push the correct type onto the stack.

* Fixing uninitialized ins.

* Fixing ro_type.

* Initializing ins.

* Complex cases with type load failures replace method body with a throw.

* Cleaning up superfluous code changes.

* Restored sizeof cosntant on failed types.

* [mono] Implement Vector128.Shuffle () for llvm on x64. (#92656)

* JIT: Handle remainder accesses more precisely in physical promotion liveness (#92651)

The liveness pass in physical promotion will currently handle any struct
LCL_FLD access of a physically promoted struct as accessing the
remainder. However, if the LCL_FLD only touches promoted fields then the
remainder is not actually used. There was a TODO around this which this
PR fixes as I stumbled upon a case this would improve.

* Add tests for `UnsafeAccessor` on fields on generic types (#92657)

* Add tests for field access on generics

The tests are currently disabled.

* Fix ILC to compile UnsafeAccessorsTests

UnsafeAccessorsTests passes on NAOT.

* Switch to etw python script (#92508)

* initial work with hacks to switch to EtwProvider python script

* move to generated scripts

* Fixes for some link issues

* fix link issue

* adding private etw callback to enable GC events

* Fix x86 build break

* fixing Linux build break

* fixing gcpriv.h

* making minimal typedefs

* FB

* Fix for posix break

* Fix Excessive Encoding in Test Logs (#92286)

* Removed special encoding that was rendering the test logs near
impossible to read properly.

* Adjusted the offending test to print the invalid character's hex code
instead, and fixed it alongside its sibling test because they didn't
handle all correct/incorrect cases properly.

* Added special handling for illegal XML characters in the test results'
XML logs.

* Simplified the sanitizing algorithm to one pass, as per Dan's feedback.

* Fix LLVMAOT Mono runtime variant official build to produce correctly named runtime packs (#92712)

In https://github.com/dotnet/runtime/commit/75ee623b8f0350a4b4be86fa71745a74beb059d1 the condition in `src/installer/pkg/sfx/Microsoft.NETCore.App/Microsoft.NETCore.App.Runtime.props` got changed from checking `MonoBundleLLVMOptimizer` to `MonoAOTEnableLLVM` but we weren't setting that property in runtime-official.yml so both jobs produced runtime packs with the same suffix, resulting in the artifact uploads randomly overwriting each other.

* Change order of loads in LowerMemcmp (#92704)

* Fix arm64 fragment unwinding (#92678)

A bug in the Windows arm64 unwinder that existed a long time ago has
caused problems with unwinding in functions split in multiple fragments
in case the location in the function was in a secondary fragment. At
that time, it was not discovered that it was a bug in the unwinder and
it got "fixed" in the runtime by always using the first fragment unwind
info. However, now it turned out that was actually incorrect in some
cases. Checking the current state of the Windows unwinder revealed that
a bug was fixed there that was causing the problem we were seeing.
Effectively ignoring all the shadow prolog unwind info in the secondary
fragments.
This change reverts the old fix after the unwinder was updated.

* Add illink analyzer support for field/property initializers (#92600)

The dataflow analyzer was exiting early for cases where the owning
symbol was not an `IMethodSymbol`. This meant we weren't running
dataflow analysis for field and property initializers.

This fixes it by allowing through cases where the owning symbol is not
an `IMethodSymbol`, and adding testcases to validate that we don't hit
asserts in the code paths that only light up for methods.

* Don't build libraries native packages in the PGO leg (#92729)

* Change how test assemblies opt-in to LibraryImportGenerator usage (#92661)

* Move more sprintf usages to snprintf (#92674)

* [wasm] GetChromeVersions: Fix fetching v8 version given a chrome version (#92667)

* [wasm] GetChromeVersions: Fix fetching v8 version given a chrome version

* Address feedback from Ilona Tomkowicz

* Updated XML documentation for `IConfigurationProvider.GetReloadToken`. (#92720)

* Avoid membarrier on lower Android versions (#92686)

Hopefully fixes #92196.

I don't actually have an ARM64 device with an old Android version so I can't testing it actually fixes the problem, but it's a plausible fix.

* Revert "Remove Latin1CharSearchValues (#91884)" (#92726)

* Revert "Remove Latin1CharSearchValues (#91884)"

This reverts commit 4a09c82215399c27f52277a8db7178270410c693.

* Keep the projitems formatting

* [main] Update dependencies from dotnet/roslyn-analyzers (#92639)

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Sven Boemer <[email protected]>

* [wasm] Fix Wasm.Build.Tests on `main` (#92741)

* CI: Don't include ref pack when the tests need workload

.. as it already includes it.

https://github.com/dotnet/runtime/issues/92732 broke this as a
side-effect which caused the `microsoft.netcore.app.ref` directory to
not be created.

Fixes https://github.com/dotnet/runtime/issues/92732 .

* [wasm] WBT: Update skiasharp reference

`blz_deploy_on_build_Debug_True_npl3f0nk_qee.csproj : error NU1903: Package 'SkiaSharp' 2.88.4-preview.76 has a known high severity vulnerability`

* Make PCP tests conditional by algorithm

The ConditionalFact tests for a functional TPM using P-256. Tests assumed that if the TPM supported P-256, then P-384 and RSA is supported as well. This is not always the case - some TPMs implement 256 without support for 384.

This changes the TPM conditional facts to be per-algorithm.

* Small refactor to BuildElement to address NRT changes (#92742)

* [mono] Enable SIMD intrinsics on winx64. (#92673)

* [mono] Enable SIMD intrinsics on winx64.

* Re-enable decompose on SIMD intrinsics on Windows.

---------

Co-authored-by: lateralusX <[email protected]>

* JIT: Promote size-wise improvements in physical promotion (#92717)

I hit the following case:
```
Evaluating access byref @000
  Single write-back cost: 3
  Write backs: 0
  Read backs: 0
  Estimated cycle improvement: 0 cycles per invocation
  Estimated size improvement: 2 bytes
Disqualifying replacement
```

These cases happen when the blocks that have candidates for promotion in
them have bbWeight equal to 0.

If we estimate a size improvement without a cycle improvement it still
makes sense to promote a replacement. More generally, a large size
improvement can make up for a small cycle regression, so add a heuristic
similar to the existing one for this. I've set it to be quite
conservative: we require 100 bytes of size improvement before we allow 1
cycle of regression. This is enough to handle the common case where the
cycle improvement is 0 due to the bbWeight = 0.

* Update TensorPrimitives aggregations to vectorize handling of remaining elements (#92672)

* Update TensorPrimitives.CosineSimilarity to vectorize handling of remaining elements

* Vectorize remainder handling for Aggregate helpers

* JIT: Unify and clean up unspilling (#91663)

* [wasm][debugger] Support passing identifiers to methods (#92758)

* Basic fix.

* More tests.

* Move tests to more suitable place.

* Pause earlier.

* [llvm] Avoid zero extending non-negative constant array indexes, its not needed and it prevents abcrem from working. (#92760)

* Fix link in ILLink.Tasks README.md (#92769)

* [main] Update dependencies from dotnet/xharness dotnet/cecil dotnet/sdk (#92700)

* Update dependencies from https://github.com/dotnet/xharness build 20230927.1

Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Common , Microsoft.DotNet.XHarness.TestRunners.Xunit
 From Version 8.0.0-prerelease.23471.1 -> To Version 8.0.0-prerelease.23477.1

* Update dependencies from https://github.com/dotnet/cecil build 20230926.1

Microsoft.DotNet.Cecil
 From Version 0.11.4-alpha.23468.2 -> To Version 0.11.4-alpha.23476.1

* Update dependencies from https://github.com/dotnet/sdk build 20230927.2

Microsoft.DotNet.ApiCompat.Task
 From Version 9.0.100-alpha.1.23476.1 -> To Version 9.0.100-alpha.1.23477.2

* Update dependencies from https://github.com/dotnet/xharness build 20230927.1

Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Common , Microsoft.DotNet.XHarness.TestRunners.Xunit
 From Version 8.0.0-prerelease.23471.1 -> To Version 8.0.0-prerelease.23477.1

* Update dependencies from https://github.com/dotnet/cecil build 20230926.1

Microsoft.DotNet.Cecil
 From Version 0.11.4-alpha.23468.2 -> To Version 0.11.4-alpha.23476.1

* Update dependencies from https://github.com/dotnet/sdk build 20230927.63

Microsoft.DotNet.ApiCompat.Task
 From Version 9.0.100-alpha.1.23476.1 -> To Version 9.0.100-alpha.1.23477.63

---------

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

* Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-optimization build 20230927.3 (#92761)

optimization.linux-arm64.MIBC.Runtime , optimization.linux-x64.MIBC.Runtime , optimization.windows_nt-arm64.MIBC.Runtime , optimization.windows_nt-x64.MIBC.Runtime , optimization.windows_nt-x86.MIBC.Runtime , optimization.PGO.CoreCLR
 From Version 1.0.0-prerelease.23471.3 -> To Version 1.0.0-prerelease.23477.3

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

* Update JIT format job to pass new `--cross` argument on Linux (#92751)

* Update JIT format job to pass new `--cross` argument on Linux

This argument is passed through to the jit-format tool and is used
when invoking build-runtime.sh on Linux when in a cross-build
scenario, such as CI builds in Mariner.

* Fix copy/paste error

* Removes redundant code from `JsonCamelCaseNamingPolicy.cs` (#92738)

* Remove Unwrap flag from UniqueComInterfaceMarshaller (#92599)

The Unwrap flag only has effect when UniqueInstance is not set. To avoid confusion from anyone referencing this code, we should remove it here.

NativeAOT needed to move the Unwrap code to inside the !UniqueInstance block to match behavior of CoreCLR. This should only be noticeable when using ComWrappers to wrap an unwrap the same object in the same NativeAOT instance. In-Proc COM with different servers and clients won't hit this behavior.

* Account port number already included within server string (#92748)

* Account port number already included within server string

* Refactor the test

* Apply feedback

* Delete misc unnecessary code (#92764)

* [main] Update dependencies from dotnet/installer (#92703)

* Update dependencies from https://github.com/dotnet/installer build 20230927.3

Microsoft.Dotnet.Sdk.Internal
 From Version 9.0.100-alpha.1.23474.1 -> To Version 9.0.100-alpha.1.23477.3

* [wasm] WBT: Update skiasharp reference

`blz_deploy_on_build_Debug_True_npl3f0nk_qee.csproj : error NU1903: Package 'SkiaSharp' 2.88.4-preview.76 has a known high severity vulnerability`

* Update dependencies from https://github.com/dotnet/installer build 20230927.26

Microsoft.Dotnet.Sdk.Internal
 From Version 9.0.100-alpha.1.23474.1 -> To Version 9.0.100-alpha.1.23477.26

---------

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Ankit Jain <[email protected]>

* Add more static preinitialization support (#92739)

Resolves #78681 (or "there's nothing else we'd be willing to do for it"). This is the rest of what I implemented trying to get `SearchValues.Create(someVeryLongString)` to preinitialize. It doesn't actually enable more `SearchValues` scenarios because I eventually hit codepaths that would require us to implement hardware intrinsics support in the interpreter. The `SearchValues` scenarios that we do support were implemented in #92470 and #92666. But since I already implemented this, here it is; maybe it will be useful for something else:

* Support for modelling `Span<X>`, including creating it from stackalloc
* Support for math/comparisons with native int
* `Unsafe.Add`

* Flesh out TensorPrimitives XML docs (#92749)

* Flesh out TensorPrimitives XML docs

* Address PR feedback

- Remove use of FusedMultiplyAdd from all but CosineSimilarity
- Remove comments about platform/OS-specific behavior from Add/AddMultiply/Subtract/Multiply/MultiplyAdd/Divide/Negate
- Loosen comments about NaN and which exact one is returned

* Address PR feedback

* Converge Representations between NativeAOT and CoreCLR (#91821)

* Update RyuJit overview (#92789)

* Correctly set sendTrustList flag when saving credentials to cache (#92731)

* JIT: Make effect handling in lowering less conservative (#92710)

The interference checking in lowering bases some of its checks on
GenTree::gtFlags. This is conservative since it includes effect flags of
operands. For LIR this does not really make sense and ends up being
conservative.

This PR replaces the relevant uses of gtFlags with a new
GenTree::OperEffects() that computes the relevant effect flags for the
node, excluding operands. We already know how to recompute effect flags
other than GTF_GLOB_REF and GTF_ORDER_SIDEEFF. This PR adds functions
for these as well (the GTF_GLOB_REF version
GenTree::OperRequiresGlobRefFlag is courtesy of @SingleAccretion).

For GTF_ORDER_SIDEEFF we add a GenTree::OperSupportsOrderingSideEffect
which captures explicitly (and conservatively) the current cases where
we are setting the flag, and only allows these cases to support the
flag. Setting the flag for other cases may result in the flag being
removed or ignored. There is a new `GenTree::SetHasOrderingSideEffect` to
add the flag which also asserts that it is only added for trees that are
supported.

Fix #92699

* [wasm] Supress policheck warning in blazor-sample (#92711)

* [wasm] Supress policheck warning in blazor-sample

Replace the offending part in the layout name. I think the suit-spade
is false positive, I used just sp in place of spade to silence it.

* Feedback

* [mono] Cleanup unused runtime functions (#91681)

- Removes unused functions
- Removes cmake configure checks for functions/headers that are no longer needed
- Renames HAVE_UWP_WINAPI_SUPPORT to HAVE_APP_WINAPI_SUPPORT
- Move MSVC warning disables into cmake so it is more visible

Co-authored-by: Johan Lorensson <[email protected]>

* Do not nop-out SSA definitions in block morphing (#92786)

SSA definitions cannot be deleted.

* Implement StoreVector64x2 and StoreVector128x2 for Arm64 (#92109)

* Implement StoreVector128x2 for Arm64

* Remove redundant implmentations

* Implement StoreVector64x2 for Arm64

* Remove StoreVector64x2 implementation for Arm64

This reverts commit 49ef72e3a3eaa58d3b3338dc5d6d80a7ca0b50b5.

* Fix instruction type for the StoreVector128x2 intrinsic

* Review comments:

* Arrange APIs alphabetically

* Add StoreVector64x2

* fix the invalid instructions

* Add test cases

* Update src/coreclr/jit/hwintrinsicarm64.cpp

Co-authored-by: Bruce Forstall <[email protected]>

---------

Co-authored-by: Kunal Pathak <[email protected]>
Co-authored-by: Bruce Forstall <[email protected]>

* Vectorize TensorPrimitives.ConvertToHalf (#92715)

* Enable TensorPrimitives to perform in-place operations (#92820)

Some operations would produce incorrect results if the same span was passed as both an input and an output.  When vectorization was employed but the span's length wasn't a perfect multiple of a vector, we'd do the standard trick of performing one last operation on the last vector's worth of data; however, that relies on the operation being idempotent, and if a previous operation has overwritten input with a new value due to the same memory being used for input and output, some operations won't be idempotent.  This fixes that by masking off the already processed elements.  It adds tests to validate in-place use works, and it updates the docs to carve out this valid overlapping.

* JIT: Optimize SequenceEqual to use ccmp on ARM64 (#92810)

In the original PR we could not get this this working due to some
conservative interference. This now does the right thing with #92710
merged.

Also change LowerCallMemcmp/LowerCallMemmove to return next node to
lower just to align it a bit more with other functions.

* [main] Update dependencies from dnceng/internal/dotnet-optimization (#92813)

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

* Move variable scope tracking code (#92800)

Move it out of codegencommon.cpp and into scopeinfo.cpp.

This is both to centralize the code but also to reduce the size of
the very large codegencommon.cpp.

* Allow `key#value` for superpmi JIT option specification (#92803)

superpmi.py will pass this through from the `-jitoption` /
`-base_jit_option` / `-diff_jit_option` to superpmi.exe
`-jitoption` and `-jit2option`.

Currently, the format is `key=value`. I wrap invocation of superpmi.py
with Windows batch file scripting, which has an annoying problem of
"eating" the equals size `=`. This works around that problem. I can't
think of any case where `#` is needed in a key or value, hence that choice
as an additional option.

* Use a different crossgen2 when running crossgen2 during our build than the crossgen2 that we are shipping (#92677)

* Fix Common.Tests.GetPrettyName_CannotRead_ReturnsNull test for root user (#92695)

* fix Common.Tests.GetPrettyName_CannotRead_ReturnsNull test for root user

* remove direct call to libc in Common.Tests.GetPrettyName_CannotRead_ReturnsNull

* Update src/libraries/Common/tests/Tests/Interop/OSReleaseTests.cs

* split Common.Tests.OSReleaseTests.GetPrettyName_CannotRead_ReturnsNull into two test cases

* replace ifs with ConditionalFact in Common.Tests.OSReleaseTests class

---------

Co-authored-by: Dan Moseley <[email protected]>

* Update dependencies from https://github.com/dotnet/installer build 20230928.5 (#92817)

Microsoft.Dotnet.Sdk.Internal
 From Version 9.0.100-alpha.1.23477.26 -> To Version 9.0.100-alpha.1.23478.5

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

* Update dependencies from https://github.com/dotnet/roslyn-analyzers build 20230928.1 (#92814)

Microsoft.CodeAnalysis.Analyzers , Microsoft.CodeAnalysis.NetAnalyzers
 From Version 3.11.0-beta1.23475.2 -> To Version 3.11.0-beta1.23478.1

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

* Add stress mode for arm/arm64 function fragment splitting (#92802)

Set JitSplitFunctionSize to either 4 or 200 under new STRESS_UNWIND mode.

* Always emit jump from hot finally block to cold target (#92797)

On some platforms, CodeGen::genCallFinally() will remove the jump between a finally block in a call-finally pair to its jump target if the target is its immediate successor in the block list (in other words, we just fall through). However, if we are doing hot/cold splitting, it is possible for the finally block to be the last hot block, and its target the first cold block. Thus, if the two are contiguous in the block list but in separate regions, we must always emit a jump.

* [tests][iOS] Fix artifacts path (#92783)

* Vectorize TensorPrimitives.ConvertToSingle (#92779)

* Vectorize TensorPrimitives.ConvertToSingle

* Address PR feedback

* Remove CompilationProvider dependency from the source generator. (#92833)

* Apply sequence equality comparison to the final Regex incremental value. (#92835)

* Apply sequence equality comparison to the final Regex incremental value.

* Avoid using SequenceEqual

* Throw exception in TensorPrimitives for unsupported span overlaps (#92838)

* Allow multiple post-build steps and allow templated pre and post-build steps (#92375)

* Include info about system call errors in some exceptions from operating on named mutexes (#92603)

* Include info about system call errors in some exceptions from operating on named mutexes

- Added new PAL APIs for creating and opening mutexes that take a string buffer for system call error info. These are called with a stack-allocated buffer and upon error the system call errors are appended to the exception message.
- When there is a system call failure that leads to the PAL API failing, some info is appended to the error string, including the system call, relevant arguments, return value, and `errno`
- `chmod` on OSX seemingly can be interrupted by signals, fixed to retry. Also fixed a couple other small things.

Fixes https://github.com/dotnet/runtime/issues/89090

* Remove fgUpdateFlowGraph from optOptimizeFlow (#92839)

* Split off patched code into separate .S file and disable subsections-via-symbols for it (#92555)

* [amd64/arm64] Split off patched code into separate .S file and disable subsections-via-symbols for it

* [amd64/arm64] Split off patched code into separate .asm file

[arm64] Move JIT_UpdateWriteBarrierState out of the patched region to match implementation in .S file

* Remove NO_SUBSECTIONS_VIA_SYMBOLS

* JIT: fix self-conflicting HFA arg prolog handling for arm64 (#92355)

Fix prolog handling in the case where the in-body destination register
for an HFA overlaps with one of the HFA argument registers. For instance
the HFA is passed in `s0-s3` and needs to end up in `v3`.

This requires special handling because the dependence analysis done in
`genFnPrologCalleeRegArgs` only tracks entire registers, not parts of
registers.

Fixes #83167

* Update targetingpacks.targets (#88991)

* Update targetingpacks.targets

The .NET 8 Preview 6 SDK has the features required to simplify the targetingpacks.targets logic.

* Update targetingpacks.targets

* Update targetingpacks.targets

* Update known items

* Update targetingpacks.targets

* Update targetingpacks.targets

* [wasm] Use specific version of v8 for tests (#91633)

* [wasm] Add support for installing V8

* [wasm] Use provisioned v8 for library tests

* [wasm] WBT: Use provisioned v8

* [wasm] enable use of provisioned v8 for library tests

* [wasm] add MSBUILD_ARGS for build-runtime-tests make target

* update docs

* Don't install v8 for runtime tests

* [wasm] CI: trigger library test jobs when chrome version changes

* Disable provisioning v8 when building runtime tests

* address review feedback

* [wasm] Disable installing v8 for runtime tests

* Address review feedback

* fix stamping for v8

* Automated bump of chrome version (#92854)

* Preinitialize pop/switch/Type.IsValueType (#92841)

These showed up in ASP.NET Stage1 and were low hanging enough.

* Use UnsafeAccessor in JSHostImplementation instead of reflection (#92755)

* [main] Update dependencies from dotnet/emsdk dotnet/sdk (#92815)

[main] Update dependencies from dotnet/emsdk dotnet/sdk

* [main] Update dependencies from dotnet/installer (#92848)

* Update dependencies from https://github.com/dotnet/installer build 20230929.5

Microsoft.Dotnet.Sdk.Internal
 From Version 9.0.100-alpha.1.23478.5 -> To Version 9.0.100-alpha.1.23479.5

* Update dependencies from https://github.com/dotnet/installer build 20230929.5

Microsoft.Dotnet.Sdk.Internal
 From Version 9.0.100-alpha.1.23478.5 -> To Version 9.0.100-alpha.1.23479.5

---------

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

* Convert all remaining tests in the Loader subtree to the merged model (#92407)

* Call fgRenumberBlocks in optIfConversion (#92821)

* [llvm] Fix spilling of valuetypes to the stack if they are passed by addr. (#92658)

The previous code would spill the valuetype when it was passed by addr,
and another bblock could try to read from the unitialized stack location.

* Check DotNetFinalVersionKind when setting WorkloadVersionSuffix (#91792)

* [RISC-V] regArg dependcies unrolling in genFnPrologCalleeRegArgs() (#91904)

* [RISC-V] Fix target type unsignedness detection in genFloatToIntCast() (#92694)

* [RISC-V] Fix target type unsignedness detection in genFloatToIntCast()

treeNode->gtFlags & GTF_UNSIGNED means unsignedness of the source type. Use varTypeIsUnsigned instead which checks for VTF_UNS on target type classification.

Fixes TryConvertToSaturatingUInt64Test and TryConvertToTruncatingUInt64Test from System.Runtime.Numerics.ComplexTests_GenericMath.

* Fix compilation without FEATURE_TIERED_COMPILATION

* [browser] Remove duplicated marshaling of return value for JSExport (#92403)

* Remove duplicated marshaling of return value for JSExport
* Move unmarshal and return value marshal into try block

* Update intellisense.targets (#92868)

* Update intellisense.targets

* Update System.Text.Json.csproj

* Ensure the adapter name 100% matching when parsing proc/net/dev (#92187)

* Ensure the adapter name 100% matching when parsing proc/net/dev

* Update src/libraries/System.Net.NetworkInformation/src/System/Net/NetworkInformation/StringParsingHelpers.Statistics.cs

Co-authored-by: Miha Zupan <[email protected]>

* Move the stackalloc out of the loop

* Update src/libraries/System.Net.NetworkInformation/src/System/Net/NetworkInformation/StringParsingHelpers.Statistics.cs

Co-authored-by: Miha Zupan <[email protected]>

---------

Co-authored-by: Miha Zupan <[email protected]>

* [mono] Only emit pshufb when ssse3 is enabled. (#92842)

Fixes https://github.com/dotnet/runtime/issues/92827.

* [browser][nodejs] keep runtime alive for JSExport calls (#92871)

* [wasm] Disable MetricsSupport feature by default (#92696)

This should improve the startup perf and size.

* Fix build of IJW test after VS upgrade (#92878)

The latest build of VS carries a C/C++ compiler which produces warning C5271:
```
src\native\corehost\test\ijw\ijw.cpp(6): warning C5271: consider replacing #using <System.Console.dll>  with command line argument /FU "F:\dotnet\runtime2\.dotnet\packs\Microsoft.NETCore.App.Ref\8.0.0-rc.1.23414.4\ref\net8.0\System.Console.dll"
src\native\corehost\test\ijw\ijw.cpp(7): warning C5271: consider replacing #using <System.Runtime.Loader.dll>  with command line argument /FU "F:\dotnet\runtime2\.dotnet\packs\Microsoft.NETCore.App.Ref\8.0.0-rc.1.23414.4\ref\net8.0\System.Runtime.Loader.dll"
```

This breaks the build on Windows. For now I'm disabling the warning as the real fix is more complex (we would need to calculate the path to the required assemblies in CMake somehow).

* Add linux-arm64 workload definitions (#92892)

* [wasm] Set InstallV8ForTests=true only for windows/linux (#92896)

.. on CI, or in a container (like codespaces).
Without this it would be `true` on macOS by default, and then fail with:
`error : V8 provisioning only supported on Linux, and windows.`

* [wasm] Perf pipeline - fix blazor_scenarios run for hybrid globalization (#92898)

* [wasm] Perf pipeline - fix blazor_scenarios run for hybrid globalization

Fails with:
```
Traceback (most recent call last):
  File "/mnt/vss/_work/1/s/Payload/performance/scripts/ci_setup.py", line 487, in <module>
    __main(sys.argv[1:])
  File "/mnt/vss/_work/1/s/Payload/performance/scripts/ci_setup.py", line 483, in __main
    main(CiSetupArgs(**vars(args)))
  File "/mnt/vss/_work/1/s/Payload/performance/scripts/ci_setup.py", line 411, in main
    dotnet_version = dotnet.get_dotnet_version(target_framework_moniker, args.cli) if args.dotnet_versions == [] else args.dotnet_versions[0]
  File "/mnt/vss/_work/1/s/Payload/performance/scripts/dotnet.py", line 581, in get_dotnet_version
    raise RuntimeError(
RuntimeError: Unable to determine the .NET SDK used for net8.0
```

This is because the definition didn't copy over the `--dotnet-versions
8.0.0` workaround needed for now. And this runs only once a week, so it
was discovered on Oct 2(Monday) even though it was merged on Sep
26(Friday).

* [wasm] Perf: run the hybrid-globalization job on runtime-wasm-perf also, for validation

* Update owner list (#92900)

* [mono][android] Add Android linux-arm64 workload definitions (#92899)

* Add linux-arm64 workload definitions

* Add linux-arm64 for android workloads

* [main] Update dependencies from dotnet/roslyn (#92578)

* Update dependencies from https://github.com/dotnet/roslyn build 20230924.2

Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.Net.Compilers.Toolset
 From Version 4.8.0-3.23474.1 -> To Version 4.8.0-3.23474.2

* Update dependencies from https://github.com/dotnet/roslyn build 20230924.3

Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.Net.Compilers.Toolset
 From Version 4.8.0-3.23474.1 -> To Version 4.8.0-3.23474.3

* Update dependencies from https://github.com/dotnet/roslyn build 20230925.1

Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.Net.Compilers.Toolset
 From Version 4.8.0-3.23474.1 -> To Version 4.8.0-3.23475.1

* Update dependencies from https://github.com/dotnet/roslyn build 20230925.2

Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.Net.Compilers.Toolset
 From Version 4.8.0-3.23474.1 -> To Version 4.8.0-3.23475.2

* Update dependencies from https://github.com/dotnet/roslyn build 20230925.3

Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.Net.Compilers.Toolset
 From Version 4.8.0-3.23474.1 -> To Version 4.8.0-3.23475.3

* Update dependencies from https://github.com/dotnet/roslyn build 20230925.4

Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.Net.Compilers.Toolset
 From Version 4.8.0-3.23474.1 -> To Version 4.8.0-3.23475.4

* Update dependencies from https://github.com/dotnet/roslyn build 20230925.5

Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.Net.Compilers.Toolset
 From Version 4.8.0-3.23474.1 -> To Version 4.8.0-3.23475.5

* Update dependencies from https://github.com/dotnet/roslyn build 20230925.6

Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.Net.Compilers.Toolset
 From Version 4.8.0-3.23474.1 -> To Version 4.8.0-3.23475.6

* Update dependencies from https://github.com/dotnet/roslyn build 20230925.7

Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.Net.Compilers.Toolset
 From Version 4.8.0-3.23474.1 -> To Version 4.8.0-3.23475.7

* Update dependencies from https://github.com/dotnet/roslyn build 20230925.8

Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.Net.Compilers.Toolset
 From Version 4.8.0-3.23474.1 -> To Version 4.8.0-3.23475.8

* Update dependencies from https://github.com/dotnet/roslyn build 20230925.10

Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.Net.Compilers.Toolset
 From Version 4.8.0-3.23474.1 -> To Version 4.8.0-3.23475.10

* Update dependencies from https://github.com/dotnet/roslyn build 20230926.3

Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.Net.Compilers.Toolset
 From Version 4.8.0-3.23474.1 -> To Version 4.8.0-3.23476.3

* Update dependencies from https://github.com/dotnet/roslyn build 20230926.6

Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.Net.Compilers.Toolset
 From Version 4.8.0-3.23474.1 -> To Version 4.8.0-3.23476.6

* Update dependencies from https://github.com/dotnet/roslyn build 20230926.13

Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.Net.Compilers.Toolset
 From Version 4.8.0-3.23474.1 -> To Version 4.8.0-3.23476.13

* Update dependencies from https://github.com/dotnet/roslyn build 20230926.14

Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.Net.Compilers.Toolset
 From Version 4.8.0-3.23474.1 -> To Version 4.8.0-3.23476.14

* Update dependencies from https://github.com/dotnet/roslyn build 20230926.15

Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.Net.Compilers.Toolset
 From Version 4.8.0-3.23474.1 -> To Version 4.8.0-3.23476.15

* Update dependencies from https://github.com/dotnet/roslyn build 20230926.21

Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.Net.Compilers.Toolset
 From Version 4.8.0-3.23474.1 -> To Version 4.8.0-3.23476.21

* Update dependencies from https://github.com/dotnet/roslyn build 20230926.22

Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.Net.Compilers.Toolset
 From Version 4.8.0-3.23474.1 -> To Version 4.8.0-3.23476.22

* Update dependencies from https://github.com/dotnet/roslyn build 20230927.1

Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.Net.Compilers.Toolset
 From Version 4.8.0-3.23474.1 -> To Version 4.8.0-3.23477.1

* Update dependencies from https://github.com/dotnet/roslyn build 20230927.4

Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.Net.Compilers.Toolset
 From Version 4.8.0-3.23474.1 -> To Version 4.8.0-3.23477.4

* Update dependencies from https://github.com/dotnet/roslyn build 20230928.3

Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.Net.Compilers.Toolset
 From Version 4.8.0-3.23474.1 -> To Version 4.8.0-3.23478.3

* Update dependencies from https://github.com/dotnet/roslyn build 20230928.4

Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.Net.Compilers.Toolset
 From Version 4.8.0-3.23474.1 -> To Version 4.8.0-3.23478.4

* Update dependencies from https://github.com/dotnet/roslyn build 20231001.1

Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.Net.Compilers.Toolset
 From Version 4.8.0-3.23474.1 -> To Version 4.8.0-3.23501.1

---------

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

* Fix deadlock in EventPipeEventDispatcher (#92806)

* Remove 'tracing' from Native AOT PR runs (#92825)

Tracing heavily increases the time it takes to run Native AOT tests.
We already run these tests in the outerloop and the probability that
any given PR will break these tests is low. Outerloop coverage should
be good enough right now.

* Clean up the crossgen2_publish project and local/live packs references (#92826)

* Inline some of the options for the new crossgen2_publish project.

* Resolve TODOs in targetingpacks.targets

* Crossgen1 is long gone. Don't try to discover it in our override targets.

* Move ReadyToRun.targets infra into the shared repo infrastructure and have projects automatically opt-in to it instead of the LKG crossgen2 when they are targeting the live build.

* Remove extraneous property set (the same value is calculated automatically already)

* Remove outdated comment.

* Fix NativeAOT and installer legs

* Condition turning off pack downloads based on opt-in to local pack usage.

* Use the LKG host instead of the 7.0 host as the fallback for NativeExports.

* Apply suggestions from code review

Co-authored-by: Viktor Hofer <[email protected]>

* Remove AdditionalProperties as they aren't needed (global properties on the command line are already transitive)

* PR feedback

* Hook into the targets pipeline to avoid overridding targets for R2Ring projects that reference the live framework packs. Move the "target override" logic back to where we build the runtime pack as that's the only place where we need crossgen2 and can't reference the runtime pack (as we're building it).

* Don't set CoreCLRArtifactsPath manually.

* PR feedback

---------

Co-authored-by: Viktor Hofer <[email protected]>

* fix typo (#92893)

* SPMI: Disable CodeQL in superpmi-collect pipeline (#92872)

This weekend's runs hit a bunch of timeouts due to auto-injected CodeQL.

* SPMI: Simplify and improve reporting of context information (#92824)

Currently we have multiple separate mechanisms to report information
back from superpmi.exe:
1. -baseMetricsSummary/metricsSummary, which outputs a .csv file with
   aggregated statics for all contexts from the perspective of the base
   JIT
2. -diffMetricsSummary, which is the corresponding for the diff JIT
   when diffing
3. -diffsInfo, which during diffing will output a .csv with individual
   rows for every context that had diffs in it

This PR replaces these three mechanisms with a -details argument. When
passed, superpmi.exe will write a .csv file to the specified path that
contains a row for every context.

The arg is supported in both replay and diff mode but creates .csv files
with slightly different formats for these. For replays the header output
is:
```
Context,Context size,Result,MinOpts,Size,Instructions
```

For diffs the output is:
```
Context,Context size,Base result,Diff result,MinOpts,Has diff,Base size,Diff size,Base instructions,Diff instructions
```

superpmi.py is changed to utilize this new output instead, which
involves computing some of the same details we were getting from the
metrics summaries before.

Prerequisite for #85755

* [mono][jit] Arm64 SIMD regs are now zeroed with movi instead of eor (#92882)

* SIMD regs are now zeroed with movi instead of eor.

* Simplified vector length selection.

* JIT: Merge consecutive stores (#92852)

Co-authored-by: Egor <[email protected]>
Co-authored-by: Jakob Botsch Nielsen <[email protected]>

* Improve throughput / allocations of JsonNode.GetPath (#92284)

* Improve throughput / allocations of JsonNode.GetPath

The current implementation is creating a `List<string>` and appending each segment to it, which in most of the cases is allocating a `string`. Then it iterates through that list in reverse order appending to a newly-created `StringBuilder`, which it then `ToString`s. In this change, it instead just uses `ValueStringBuilder`, appending to it as it goes.

In doing so, it does reverse the order of enumeration. Previously each node would effectively do:
```C#
void GetPath()
{
    AddNode(this);
    parent?.GetPath();
}
```
and now it's doing:
```C#
void GetPath()
{
    parent?.GetPath();
    AddNode(this);
}
```
While C# doesn't emit tail calls, with optimizations enabled, it's feasible the JIT might emit the recursive call as a jmp rather than a call, in which case it would avoid possible stack dives. However, that's not guaranteed, and doesn't happen today in tier 0 and other unoptimized code. On top of that, to get such a deep nesting in a JsonNode, you need to either go out of your way to create one manually using the JsonNode/Object/Array/Value constructors, or you need to use JsonSerializer.Deserializer, overriding its default MaxDepth, and in the case of a really deep input, it's also recursive and will stack overflow in smaller situations. I have a different version of this change that keeps the same ordering, passing around a span and a length separately, and prepending to the end of the span, but it results in more complicated code, so I'd prefer this variation that just uses ValueStringBuilder unless we have real concerns.

* Address PR feedback

* Update dependencies from https://github.com/dotnet/source-build-externals build 20231002.3 (#92936)

Microsoft.SourceBuild.Intermediate.source-build-externals
 From Version 9.0.0-alpha.1.23475.2 -> To Version 9.0.0-alpha.1.23502.3

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

* [wasm] Use intended ports when running DevServer (#92913)

* [wasm] Ignore empty `$ASPNETCORE_URLS`

* [wasm] DevServer: honor urls specified in the options

* [wasm] CI: Don't trigger non-wbt jobs on wasm-app-host changes

* CI: don't trigger wasm runtime tests on wasm-app-host changes

* This vectorizes TensorPrimitives.Log2 (#92897)

* Add a way to support operations that can't be vectorized on netstandard

* Updating TensorPrimitives.Log2 to be vectorized on .NET Core

* Update src/libraries/System.Numerics.Tensors/src/System/Numerics/Tensors/TensorPrimitives.netstandard.cs

Co-authored-by: Stephen Toub <[email protected]>

* Ensure we do an arithmetic right shift in the Log2 vectorization

* Ensure the code can compile on .NET 7

* Ensure that edge cases are properly handled and don't resolve to `x`

* Ensure that Log2 special results are explicitly handled.

---------

Co-authored-by: Stephen Toub <[email protected]>

* Add analyzer support for inline array access (#92736)

This allows analysis of inline array access operations, by
treating them similarly to array access. However, like
ILLink/ILCompiler it doesn't understand inline array creation, so
doesn't track them as arrays. The result is that values read out
of an inline array are unknown, so this produces dataflow
warnings when such a value is passed to a location with dataflow
requirements, matching the ILLink/ILCompiler behavior.

Using `InlineArray` required referencing a more recent of the
.NET 8 reference assemblies.

Fixes https://github.com/dotnet/runtime/issues/88684

* [main] Update dependencies from dotnet/installer (#92933)

Microsoft.Dotnet.Sdk.Internal
 From Version 9.0.100-alpha.1.23479.5 -> To Version 9.0.100-alpha.1.23502.7

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

* Add testing for #92539. (#92926)

* Add testing for #92539.

* Remove netfx test skips.

* Fix illink task lock during live build (#92928)

* Fix illink task lock during live build

Fixes https://github.com/dotnet/runtime/discussions/92126

* Update illink.targets

* Throw NotSupportedException when applying JsonObjectHandling.Populate on types with parameterized constructors. (#92937)

* CI: Don't trigger runtime pipelines on perf pipeline only changes (#92903)

* CI: Don't trigger runtime pipelines on perf pipeline only changes
* address review feedback from @ cincuranet

* Condition the use of NetCoreAppPrevious TFM (#92941)

* Condition the use of NetCoreAppPrevious TFM

NuGet doesn't support duplicate TFMs in the TargetFrameworks string.
Condition the use of NetCoreAppPrevious TFMs until NuGet supports that
(which is planned afaik).

* Fix ODBC project TFM

* Don't publish crossgen2 as NativeAOT when doing a cross-os build. (#92948)

* Update PGO to use the correct post-build steps model (#92958)

* Adding Log2 tests covering some special values (#92946)

* Expose an internal ISimdVector interface and being using it to deduplicate some SIMD code (#90764)

* Adding an internal ISimdVector`2 interface

* Move LastIndexOfValueType to use ISimdVector`2

* Fix a couple minor whitespace nits and remove an unnecessary local

* [wasm] Disable `TensorPrimitivesTests.ConvertToHalf_SpecialValues` (#92953)

Failing test: `System.Numerics.Tensors.Tests.TensorPrimitivesTests.ConvertToHalf_SpecialValues`

Issue: https://github.com/dotnet/runtime/issues/92885

* JIT: Expand unaligned address recognition for ARM32 (#92938)

The JIT has some backwards compatibility for accessing unaligned float
fields on ARM32. With physical promotion, we can end up with some new
patterns that we didn't handle. Expand the pattern matching to handle a
constant address unaligned address.

Fix #92382

* runtime-wasm-perf: add triggers for PRs (#92799)

* CI: runtime-wasm-perf: add triggers for running on PRs

This is useful to prevent perf pipeline from breaking when changes are
made in `dotnet/runtime`.

* CI: Add run-scenarios-job.yml to list of perf pipeline specific files

* [wasm] wasmbrowser - change the default webserver port to 0, to randomly select a port (#92952)

…mly select a port

* Adding a vectorized implementation of TensorPrimitives.Log (#92960)

* Adding a vectorized implementation of TensorPrimitives.Log

* Make sure to hit Ctrl+S

---------

Co-authored-by: Stephen Toub <[email protected]>
Co-authored-by: Michal Strehovský <[email protected]>
Co-authored-by: Larry Ewing <[email protected]>
Co-authored-by: Ankit Jain <[email protected]>
Co-authored-by: karakasa <[email protected]>
Co-authored-by: Parker Bibus <[email protected]>
Co-authored-by: Bruce Forstall <[email protected]>
Co-authored-by: Jakob Botsch Nielsen <[email protected]>
Co-authored-by: Filip W <[email protected]>
Co-authored-by: Badre BSAILA <[email protected]>
Co-authored-by: Jan Vorlicek <[email protected]>
Co-authored-by: Zoltan Varga <[email protected]>
Co-authored-by: dotnet-maestro[bot] <42748379+dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Andrey Kudashkin <[email protected]>
Co-authored-by: Andrey.Kudashkin <[email protected]>
Co-authored-by: Jan Kotas <[email protected]>
Co-authored-by: yowl <[email protected]>
Co-authored-by: Jeremy Koritzinsky <[email protected]>
Co-authored-by: Elinor Fung <[email protected]>
Co-authored-by: Layomi Akinrinade <[email protected]>
Co-authored-by: Jan Dupej <[email protected]>
Co-authored-by: Aaron Robinson <[email protected]>
Co-authored-by: Lakshan Fernando <[email protected]>
Co-authored-by: Ivan Diaz Sanchez <[email protected]>
Co-authored-by: Alexander Köplinger <[email protected]>
Co-authored-by: Egor Bogatov <[email protected]>
Co-authored-by: Sven Boemer <[email protected]>
Co-authored-by: Hazel <[email protected]>
Co-authored-by: Miha Zupan <[email protected]>
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Kevin Jones <[email protected]>
Co-authored-by: Levi Broderick <[email protected]>
Co-authored-by: lateralusX <[email protected]>
Co-authored-by: Ilona Tomkowicz <[email protected]>
Co-authored-by: Tarcisio <[email protected]>
Co-authored-by: Jackson Schuster <[email protected]>
Co-authored-by: Buyaa Namnan <[email protected]>
Co-authored-by: Andrew Au <[email protected]>
Co-authored-by: SingleAccretion <[email protected]>
Co-authored-by: Radek Zikmund <[email protected]>
Co-authored-by: Radek Doulik <[email protected]>
Co-authored-by: SwapnilGaikwad <[email protected]>
Co-authored-by: Kunal Pathak <[email protected]>
Co-authored-by: Tymoteusz Wenerski <[email protected]>
Co-authored-by: Dan Moseley <[email protected]>
Co-authored-by: Aman Khalid <[email protected]>
Co-authored-by: Mitchell Hwang <[email protected]>
Co-authored-by: Eirik Tsarpalis <[email protected]>
Co-authored-by: Koundinya Veluri <[email protected]>
Co-authored-by: Filip Navara <[email protected]>
Co-authored-by: Andy Ayers <[email protected]>
Co-authored-by: Viktor Hofer <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Tomáš Rylek <[email protected]>
Co-authored-by: Djuradj Kurepa <[email protected]>
Co-authored-by: t-mustafin <[email protected]>
Co-authored-by: Tomasz Sowiński <[email protected]>
Co-authored-by: Marek Fišera <[email protected]>
Co-authored-by: skyoxZ <[email protected]>
Co-authored-by: Pavel Savara <[email protected]>
Co-authored-by: Vitek Karas <[email protected]>
Co-authored-by: Eric StJohn <[email protected]>
Co-authored-by: David Mason <[email protected]>
Co-authored-by: Andy Gocke <[email protected]>
Co-authored-by: Milos Kotlar <[email protected]>
Co-authored-by: Egor <[email protected]>
Co-authored-by: Tanner Gooding <[email protected]>
Artromskiy added a commit to Artromskiy/runtime that referenced this issue Oct 4, 2023
commit 1d352cb36c06a16bc93e424809fb431d5795e741
Author: Aman Khalid <[email protected]>
Date:   Tue Oct 3 21:30:06 2023 -0400

    JIT: Make BasicBlock::bbJumpKind private (#92908)

    This is the beginning of a larger effort to disallow the use of BBJ_NONE (reserved for basic blocks that fall through) before the current method's block layout is finalized.

commit 76b63a389c413dc450956c14a878dad8343dc72a
Author: Buyaa Namnan <[email protected]>
Date:   Tue Oct 3 16:07:03 2023 -0700

    Minimal ILGenerator implementation for new AssemblyBuilder.Save (#92846)

    * Minimal ILGenerator implementation

    * Add more test, disable testing on browser

    * Apply feedback, add more test scenarios

    * Temporarily count the maxstack depth for each OpCode

commit 7ffff3f41ee1a5ffeb5c4728e5f1ad078cdd1134
Author: Tanner Gooding <[email protected]>
Date:   Tue Oct 3 14:15:36 2023 -0700

    Adding a vectorized implementation of TensorPrimitives.Log (#92960)

    * Adding a vectorized implementation of TensorPrimitives.Log

    * Make sure to hit Ctrl+S

commit e5997219a12121fd560e0f740aebfae0acc31601
Author: Ankit Jain <[email protected]>
Date:   Tue Oct 3 17:03:05 2023 -0400

    [wasm] wasmbrowser - change the default webserver port to 0, to randomly select a port (#92952)

    …mly select a port

commit d2e24fa59d5259000b803cb4efc0dfd2c7ea0b37
Author: Ankit Jain <[email protected]>
Date:   Tue Oct 3 16:04:03 2023 -0400

    runtime-wasm-perf: add triggers for PRs (#92799)

    * CI: runtime-wasm-perf: add triggers for running on PRs

    This is useful to prevent perf pipeline from breaking when changes are
    made in `dotnet/runtime`.

    * CI: Add run-scenarios-job.yml to list of perf pipeline specific files

commit 6dadf7cccf4c30c4d4cfd34bb96a7a716f9556e4
Author: Jakob Botsch Nielsen <[email protected]>
Date:   Tue Oct 3 21:57:08 2023 +0200

    JIT: Expand unaligned address recognition for ARM32 (#92938)

    The JIT has some backwards compatibility for accessing unaligned float
    fields on ARM32. With physical promotion, we can end up with some new
    patterns that we didn't handle. Expand the pattern matching to handle a
    constant address unaligned address.

    Fix #92382

commit 01cab2988074d6bed31b0d5ea74c3902b4300205
Author: Ankit Jain <[email protected]>
Date:   Tue Oct 3 15:38:23 2023 -0400

    [wasm] Disable `TensorPrimitivesTests.ConvertToHalf_SpecialValues` (#92953)

    Failing test: `System.Numerics.Tensors.Tests.TensorPrimitivesTests.ConvertToHalf_SpecialValues`

    Issue: https://github.com/dotnet/runtime/issues/92885

commit 15ffcff82fe8a3eea529ae5d67a9fc52be990d9f
Author: Tanner Gooding <[email protected]>
Date:   Tue Oct 3 12:14:17 2023 -0700

    Expose an internal ISimdVector interface and being using it to deduplicate some SIMD code (#90764)

    * Adding an internal ISimdVector`2 interface

    * Move LastIndexOfValueType to use ISimdVector`2

    * Fix a couple minor whitespace nits and remove an unnecessary local

commit b9e01455c2247454ec0301b8465f7168eebd6a09
Author: Tanner Gooding <[email protected]>
Date:   Tue Oct 3 12:12:09 2023 -0700

    Adding Log2 tests covering some special values (#92946)

commit 9ac07e85e4a772ec70e284e2c454eda50a46a149
Author: Jeremy Koritzinsky <[email protected]>
Date:   Tue Oct 3 11:43:54 2023 -0700

    Update PGO to use the correct post-build steps model (#92958)

commit 3452a99cc11fef73ffc34d43c86410d451e33d39
Author: Jeremy Koritzinsky <[email protected]>
Date:   Tue Oct 3 11:25:00 2023 -0700

    Don't publish crossgen2 as NativeAOT when doing a cross-os build. (#92948)

commit bdceab9718962585206bdb309557d986e12a3d55
Author: Viktor Hofer <[email protected]>
Date:   Tue Oct 3 19:24:43 2023 +0200

    Condition the use of NetCoreAppPrevious TFM (#92941)

    * Condition the use of NetCoreAppPrevious TFM

    NuGet doesn't support duplicate TFMs in the TargetFrameworks string.
    Condition the use of NetCoreAppPrevious TFMs until NuGet supports that
    (which is planned afaik).

    * Fix ODBC project TFM

commit 5f5d8608e209064651c924d0aa1c175adb338230
Author: Ankit Jain <[email protected]>
Date:   Tue Oct 3 13:19:53 2023 -0400

    CI: Don't trigger runtime pipelines on perf pipeline only changes (#92903)

    * CI: Don't trigger runtime pipelines on perf pipeline only changes
    * address review feedback from @ cincuranet

commit a22dee15d0b69815ed5b785f0e318d31815b8028
Author: Eirik Tsarpalis <[email protected]>
Date:   Tue Oct 3 18:08:46 2023 +0100

    Throw NotSupportedException when applying JsonObjectHandling.Populate on types with parameterized constructors. (#92937)

commit 640e9d9ac24e3737abce5ec2bc2f1e973d9107f7
Author: Viktor Hofer <[email protected]>
Date:   Tue Oct 3 19:05:54 2023 +0200

    Fix illink task lock during live build (#92928)

    * Fix illink task lock during live build

    Fixes https://github.com/dotnet/runtime/discussions/92126

    * Update illink.targets

commit 5d3cfb15734f10e394bee7cc63a55b3a1a72006d
Author: Eirik Tsarpalis <[email protected]>
Date:   Tue Oct 3 17:55:23 2023 +0100

    Add testing for #92539. (#92926)

    * Add testing for #92539.

    * Remove netfx test skips.

commit 3287f9fad14b406d46895b849769104d1c7a7e2d
Author: dotnet-maestro[bot] <42748379+dotnet-maestro[bot]@users.noreply.github.com>
Date:   Tue Oct 3 12:50:38 2023 -0400

    [main] Update dependencies from dotnet/installer (#92933)

    Microsoft.Dotnet.Sdk.Internal
     From Version 9.0.100-alpha.1.23479.5 -> To Version 9.0.100-alpha.1.23502.7

    Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

commit f9f322a7b134e58d7044dbd9b0cdf9bf820408ef
Author: Sven Boemer <[email protected]>
Date:   Tue Oct 3 09:23:11 2023 -0700

    Add analyzer support for inline array access (#92736)

    This allows analysis of inline array access operations, by
    treating them similarly to array access. However, like
    ILLink/ILCompiler it doesn't understand inline array creation, so
    doesn't track them as arrays. The result is that values read out
    of an inline array are unknown, so this produces dataflow
    warnings when such a value is passed to a location with dataflow
    requirements, matching the ILLink/ILCompiler behavior.

    Using `InlineArray` required referencing a more recent of the
    .NET 8 reference assemblies.

    Fixes https://github.com/dotnet/runtime/issues/88684

commit 781e002f9e760f828d4dc8455fb6228380c56b33
Author: Tanner Gooding <[email protected]>
Date:   Tue Oct 3 08:55:53 2023 -0700

    This vectorizes TensorPrimitives.Log2 (#92897)

    * Add a way to support operations that can't be vectorized on netstandard

    * Updating TensorPrimitives.Log2 to be vectorized on .NET Core

    * Update src/libraries/System.Numerics.Tensors/src/System/Numerics/Tensors/TensorPrimitives.netstandard.cs

    Co-authored-by: Stephen Toub <[email protected]>

    * Ensure we do an arithmetic right shift in the Log2 vectorization

    * Ensure the code can compile on .NET 7

    * Ensure that edge cases are properly handled and don't resolve to `x`

    * Ensure that Log2 special results are explicitly handled.

    ---------

    Co-authored-by: Stephen Toub <[email protected]>

commit f41715c454f41584fcf55792d2619a9492184490
Author: Ankit Jain <[email protected]>
Date:   Tue Oct 3 11:54:24 2023 -0400

    [wasm] Use intended ports when running DevServer (#92913)

    * [wasm] Ignore empty `$ASPNETCORE_URLS`

    * [wasm] DevServer: honor urls specified in the options

    * [wasm] CI: Don't trigger non-wbt jobs on wasm-app-host changes

    * CI: don't trigger wasm runtime tests on wasm-app-host changes

commit 88f25474334bfb0da10e0b5acb0219a64a04828b
Author: dotnet-maestro[bot] <42748379+dotnet-maestro[bot]@users.noreply.github.com>
Date:   Tue Oct 3 10:46:17 2023 -0400

    Update dependencies from https://github.com/dotnet/source-build-externals build 20231002.3 (#92936)

    Microsoft.SourceBuild.Intermediate.source-build-externals
     From Version 9.0.0-alpha.1.23475.2 -> To Version 9.0.0-alpha.1.23502.3

    Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

commit d3569b99ead8f909556f5b416b6f57d94f30e668
Author: Stephen Toub <[email protected]>
Date:   Tue Oct 3 09:10:40 2023 -0400

    Improve throughput / allocations of JsonNode.GetPath (#92284)

    * Improve throughput / allocations of JsonNode.GetPath

    The current implementation is creating a `List<string>` and appending each segment to it, which in most of the cases is allocating a `string`. Then it iterates through that list in reverse order appending to a newly-created `StringBuilder`, which it then `ToString`s. In this change, it instead just uses `ValueStringBuilder`, appending to it as it goes.

    In doing so, it does reverse the order of enumeration. Previously each node would effectively do:
    ```C#
    void GetPath()
    {
        AddNode(this);
        parent?.GetPath();
    }
    ```
    and now it's doing:
    ```C#
    void GetPath()
    {
        parent?.GetPath();
        AddNode(this);
    }
    ```
    While C# doesn't emit tail calls, with optimizations enabled, it's feasible the JIT might emit the recursive call as a jmp rather than a call, in which case it would avoid possible stack dives. However, that's not guaranteed, and doesn't happen today in tier 0 and other unoptimized code. On top of that, to get such a deep nesting in a JsonNode, you need to either go out of your way to create one manually using the JsonNode/Object/Array/Value constructors, or you need to use JsonSerializer.Deserializer, overriding its default MaxDepth, and in the case of a really deep input, it's also recursive and will stack overflow in smaller situations. I have a different version of this change that keeps the same ordering, passing around a span and a length separately, and prepending to the end of the span, but it results in more complicated code, so I'd prefer this variation that just uses ValueStringBuilder unless we have real concerns.

    * Address PR feedback

commit 6b25c3ba1a349b22e70c5418b5b05e545e1e2271
Author: Egor Bogatov <[email protected]>
Date:   Tue Oct 3 14:08:40 2023 +0200

    JIT: Merge consecutive stores (#92852)

    Co-authored-by: Egor <[email protected]>
    Co-authored-by: Jakob Botsch Nielsen <[email protected]>

commit 7abea9ea6ac3cde23fe1a890338e22a5a58a51b6
Author: Jan Dupej <[email protected]>
Date:   Tue Oct 3 12:08:56 2023 +0200

    [mono][jit] Arm64 SIMD regs are now zeroed with movi instead of eor (#92882)

    * SIMD regs are now zeroed with movi instead of eor.

    * Simplified vector length selection.

commit 3b0cd57dc2b01dbb5c8a0d740a33a4b0aed470bf
Author: Jakob Botsch Nielsen <[email protected]>
Date:   Tue Oct 3 11:34:36 2023 +0200

    SPMI: Simplify and improve reporting of context information (#92824)

    Currently we have multiple separate mechanisms to report information
    back from superpmi.exe:
    1. -baseMetricsSummary/metricsSummary, which outputs a .csv file with
       aggregated statics for all contexts from the perspective of the base
       JIT
    2. -diffMetricsSummary, which is the corresponding for the diff JIT
       when diffing
    3. -diffsInfo, which during diffing will output a .csv with individual
       rows for every context that had diffs in it

    This PR replaces these three mechanisms with a -details argument. When
    passed, superpmi.exe will write a .csv file to the specified path that
    contains a row for every context.

    The arg is supported in both replay and diff mode but creates .csv files
    with slightly different formats for these. For replays the header output
    is:
    ```
    Context,Context size,Result,MinOpts,Size,Instructions
    ```

    For diffs the output is:
    ```
    Context,Context size,Base result,Diff result,MinOpts,Has diff,Base size,Diff size,Base instructions,Diff instructions
    ```

    superpmi.py is changed to utilize this new output instead, which
    involves computing some of the same details we were getting from the
    metrics summaries before.

    Prerequisite for #85755

commit b93d9b42cef60ffcbfaf7787a4b4187a9edb8efe
Author: Jakob Botsch Nielsen <[email protected]>
Date:   Tue Oct 3 11:34:10 2023 +0200

    SPMI: Disable CodeQL in superpmi-collect pipeline (#92872)

    This weekend's runs hit a bunch of timeouts due to auto-injected CodeQL.

commit 087ee5dba3e682fd8241d1634272bec890cff211
Author: Milos Kotlar <[email protected]>
Date:   Tue Oct 3 10:21:59 2023 +0200

    fix typo (#92893)

commit 5c8055668b7af03022e368febc109e512013a292
Author: Jeremy Koritzinsky <[email protected]>
Date:   Tue Oct 3 01:20:31 2023 -0700

    Clean up the crossgen2_publish project and local/live packs references (#92826)

    * Inline some of the options for the new crossgen2_publish project.

    * Resolve TODOs in targetingpacks.targets

    * Crossgen1 is long gone. Don't try to discover it in our override targets.

    * Move ReadyToRun.targets infra into the shared repo infrastructure and have projects automatically opt-in to it instead of the LKG crossgen2 when they are targeting the live build.

    * Remove extraneous property set (the same value is calculated automatically already)

    * Remove outdated comment.

    * Fix NativeAOT and installer legs

    * Condition turning off pack downloads based on opt-in to local pack usage.

    * Use the LKG host instead of the 7.0 host as the fallback for NativeExports.

    * Apply suggestions from code review

    Co-authored-by: Viktor Hofer <[email protected]>

    * Remove AdditionalProperties as they aren't needed (global properties on the command line are already transitive)

    * PR feedback

    * Hook into the targets pipeline to avoid overridding targets for R2Ring projects that reference the live framework packs. Move the "target override" logic back to where we build the runtime pack as that's the only place where we need crossgen2 and can't reference the runtime pack (as we're building it).

    * Don't set CoreCLRArtifactsPath manually.

    * PR feedback

    ---------

    Co-authored-by: Viktor Hofer <[email protected]>

commit 82fee2692b3954ba8903fa4764f1f4e36a26341a
Author: Andy Gocke <[email protected]>
Date:   Mon Oct 2 15:24:51 2023 -0700

    Remove 'tracing' from Native AOT PR runs (#92825)

    Tracing heavily increases the time it takes to run Native AOT tests.
    We already run these tests in the outerloop and the probability that
    any given PR will break these tests is low. Outerloop coverage should
    be good enough right now.

commit 9aebb668fb6b266f2e7fa6954c378795503e2bff
Author: David Mason <[email protected]>
Date:   Mon Oct 2 14:22:07 2023 -0700

    Fix deadlock in EventPipeEventDispatcher (#92806)

commit 42a6776e6cb1569fe277181f424ccbbe243cf386
Author: dotnet-maestro[bot] <42748379+dotnet-maestro[bot]@users.noreply.github.com>
Date:   Mon Oct 2 15:29:16 2023 -0500

    [main] Update dependencies from dotnet/roslyn (#92578)

    * Update dependencies from https://github.com/dotnet/roslyn build 20230924.2

    Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.Net.Compilers.Toolset
     From Version 4.8.0-3.23474.1 -> To Version 4.8.0-3.23474.2

    * Update dependencies from https://github.com/dotnet/roslyn build 20230924.3

    Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.Net.Compilers.Toolset
     From Version 4.8.0-3.23474.1 -> To Version 4.8.0-3.23474.3

    * Update dependencies from https://github.com/dotnet/roslyn build 20230925.1

    Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.Net.Compilers.Toolset
     From Version 4.8.0-3.23474.1 -> To Version 4.8.0-3.23475.1

    * Update dependencies from https://github.com/dotnet/roslyn build 20230925.2

    Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.Net.Compilers.Toolset
     From Version 4.8.0-3.23474.1 -> To Version 4.8.0-3.23475.2

    * Update dependencies from https://github.com/dotnet/roslyn build 20230925.3

    Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.Net.Compilers.Toolset
     From Version 4.8.0-3.23474.1 -> To Version 4.8.0-3.23475.3

    * Update dependencies from https://github.com/dotnet/roslyn build 20230925.4

    Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.Net.Compilers.Toolset
     From Version 4.8.0-3.23474.1 -> To Version 4.8.0-3.23475.4

    * Update dependencies from https://github.com/dotnet/roslyn build 20230925.5

    Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.Net.Compilers.Toolset
     From Version 4.8.0-3.23474.1 -> To Version 4.8.0-3.23475.5

    * Update dependencies from https://github.com/dotnet/roslyn build 20230925.6

    Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.Net.Compilers.Toolset
     From Version 4.8.0-3.23474.1 -> To Version 4.8.0-3.23475.6

    * Update dependencies from https://github.com/dotnet/roslyn build 20230925.7

    Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.Net.Compilers.Toolset
     From Version 4.8.0-3.23474.1 -> To Version 4.8.0-3.23475.7

    * Update dependencies from https://github.com/dotnet/roslyn build 20230925.8

    Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.Net.Compilers.Toolset
     From Version 4.8.0-3.23474.1 -> To Version 4.8.0-3.23475.8

    * Update dependencies from https://github.com/dotnet/roslyn build 20230925.10

    Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.Net.Compilers.Toolset
     From Version 4.8.0-3.23474.1 -> To Version 4.8.0-3.23475.10

    * Update dependencies from https://github.com/dotnet/roslyn build 20230926.3

    Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.Net.Compilers.Toolset
     From Version 4.8.0-3.23474.1 -> To Version 4.8.0-3.23476.3

    * Update dependencies from https://github.com/dotnet/roslyn build 20230926.6

    Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.Net.Compilers.Toolset
     From Version 4.8.0-3.23474.1 -> To Version 4.8.0-3.23476.6

    * Update dependencies from https://github.com/dotnet/roslyn build 20230926.13

    Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.Net.Compilers.Toolset
     From Version 4.8.0-3.23474.1 -> To Version 4.8.0-3.23476.13

    * Update dependencies from https://github.com/dotnet/roslyn build 20230926.14

    Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.Net.Compilers.Toolset
     From Version 4.8.0-3.23474.1 -> To Version 4.8.0-3.23476.14

    * Update dependencies from https://github.com/dotnet/roslyn build 20230926.15

    Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.Net.Compilers.Toolset
     From Version 4.8.0-3.23474.1 -> To Version 4.8.0-3.23476.15

    * Update dependencies from https://github.com/dotnet/roslyn build 20230926.21

    Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.Net.Compilers.Toolset
     From Version 4.8.0-3.23474.1 -> To Version 4.8.0-3.23476.21

    * Update dependencies from https://github.com/dotnet/roslyn build 20230926.22

    Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.Net.Compilers.Toolset
     From Version 4.8.0-3.23474.1 -> To Version 4.8.0-3.23476.22

    * Update dependencies from https://github.com/dotnet/roslyn build 20230927.1

    Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.Net.Compilers.Toolset
     From Version 4.8.0-3.23474.1 -> To Version 4.8.0-3.23477.1

    * Update dependencies from https://github.com/dotnet/roslyn build 20230927.4

    Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.Net.Compilers.Toolset
     From Version 4.8.0-3.23474.1 -> To Version 4.8.0-3.23477.4

    * Update dependencies from https://github.com/dotnet/roslyn build 20230928.3

    Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.Net.Compilers.Toolset
     From Version 4.8.0-3.23474.1 -> To Version 4.8.0-3.23478.3

    * Update dependencies from https://github.com/dotnet/roslyn build 20230928.4

    Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.Net.Compilers.Toolset
     From Version 4.8.0-3.23474.1 -> To Version 4.8.0-3.23478.4

    * Update dependencies from https://github.com/dotnet/roslyn build 20231001.1

    Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.CSharp , Microsoft.Net.Compilers.Toolset
     From Version 4.8.0-3.23474.1 -> To Version 4.8.0-3.23501.1

    ---------

    Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

commit 087ca4662309f3db40b3096cbf89853d9c292e16
Author: Larry Ewing <[email protected]>
Date:   Mon Oct 2 14:59:35 2023 -0500

    [mono][android] Add Android linux-arm64 workload definitions (#92899)

    * Add linux-arm64 workload definitions

    * Add linux-arm64 for android workloads

commit 2552b1cd7d7b85a1efa3c7511e5602b2f951d2ee
Author: Eric StJohn <[email protected]>
Date:   Mon Oct 2 12:58:50 2023 -0700

    Update owner list (#92900)

commit b3b9160382b1caace65d694e1d8de7b813240a55
Author: Ankit Jain <[email protected]>
Date:   Mon Oct 2 15:51:43 2023 -0400

    [wasm] Perf pipeline - fix blazor_scenarios run for hybrid globalization (#92898)

    * [wasm] Perf pipeline - fix blazor_scenarios run for hybrid globalization

    Fails with:
    ```
    Traceback (most recent call last):
      File "/mnt/vss/_work/1/s/Payload/performance/scripts/ci_setup.py", line 487, in <module>
        __main(sys.argv[1:])
      File "/mnt/vss/_work/1/s/Payload/performance/scripts/ci_setup.py", line 483, in __main
        main(CiSetupArgs(**vars(args)))
      File "/mnt/vss/_work/1/s/Payload/performance/scripts/ci_setup.py", line 411, in main
        dotnet_version = dotnet.get_dotnet_version(target_framework_moniker, args.cli) if args.dotnet_versions == [] else args.dotnet_versions[0]
      File "/mnt/vss/_work/1/s/Payload/performance/scripts/dotnet.py", line 581, in get_dotnet_version
        raise RuntimeError(
    RuntimeError: Unable to determine the .NET SDK used for net8.0
    ```

    This is because the definition didn't copy over the `--dotnet-versions
    8.0.0` workaround needed for now. And this runs only once a week, so it
    was discovered on Oct 2(Monday) even though it was merged on Sep
    26(Friday).

    * [wasm] Perf: run the hybrid-globalization job on runtime-wasm-perf also, for validation

commit 1780220c9b2963e127599accc618208975c4711f
Author: Ankit Jain <[email protected]>
Date:   Mon Oct 2 15:07:56 2023 -0400

    [wasm] Set InstallV8ForTests=true only for windows/linux (#92896)

    .. on CI, or in a container (like codespaces).
    Without this it would be `true` on macOS by default, and then fail with:
    `error : V8 provisioning only supported on Linux, and windows.`

commit 14b222414970fef4db0b98049180d69bad895b4b
Author: Larry Ewing <[email protected]>
Date:   Mon Oct 2 13:30:49 2023 -0500

    Add linux-arm64 workload definitions (#92892)

commit e97bd6d143822b417aab32e85288f2bda0fc7507
Author: Vitek Karas <[email protected]>
Date:   Mon Oct 2 11:26:11 2023 -0700

    Fix build of IJW test after VS upgrade (#92878)

    The latest build of VS carries a C/C++ compiler which produces warning C5271:
    ```
    src\native\corehost\test\ijw\ijw.cpp(6): warning C5271: consider replacing #using <System.Console.dll>  with command line argument /FU "F:\dotnet\runtime2\.dotnet\packs\Microsoft.NETCore.App.Ref\8.0.0-rc.1.23414.4\ref\net8.0\System.Console.dll"
    src\native\corehost\test\ijw\ijw.cpp(7): warning C5271: consider replacing #using <System.Runtime.Loader.dll>  with command line argument /FU "F:\dotnet\runtime2\.dotnet\packs\Microsoft.NETCore.App.Ref\8.0.0-rc.1.23414.4\ref\net8.0\System.Runtime.Loader.dll"
    ```

    This breaks the build on Windows. For now I'm disabling the warning as the real fix is more complex (we would need to calculate the path to the required assemblies in CMake somehow).

commit a590cb4cfb9f1a66c043476695fd0e79835842eb
Author: Radek Doulik <[email protected]>
Date:   Mon Oct 2 17:37:53 2023 +0200

    [wasm] Disable MetricsSupport feature by default (#92696)

    This should improve the startup perf and size.

commit 0c81f494f5664a462a26efdce0044875a22480f3
Author: Pavel Savara <[email protected]>
Date:   Mon Oct 2 16:52:56 2023 +0200

    [browser][nodejs] keep runtime alive for JSExport calls (#92871)

commit 4434b32bf38d99aa9b54e15070359d339f225081
Author: Zoltan Varga <[email protected]>
Date:   Mon Oct 2 08:27:59 2023 -0400

    [mono] Only emit pshufb when ssse3 is enabled. (#92842)

    Fixes https://github.com/dotnet/runtime/issues/92827.

commit 3aa1c3364b71126afd5a9c69243597f869815b51
Author: skyoxZ <[email protected]>
Date:   Mon Oct 2 19:42:43 2023 +0800

    Ensure the adapter name 100% matching when parsing proc/net/dev (#92187)

    * Ensure the adapter name 100% matching when parsing proc/net/dev

    * Update src/libraries/System.Net.NetworkInformation/src/System/Net/NetworkInformation/StringParsingHelpers.Statistics.cs

    Co-authored-by: Miha Zupan <[email protected]>

    * Move the stackalloc out of the loop

    * Update src/libraries/System.Net.NetworkInformation/src/System/Net/NetworkInformation/StringParsingHelpers.Statistics.cs

    Co-authored-by: Miha Zupan <[email protected]>

    ---------

    Co-authored-by: Miha Zupan <[email protected]>

commit ca23689a58a3a7cad73c1ce747d70631c581a25b
Author: Viktor Hofer <[email protected]>
Date:   Mon Oct 2 13:04:40 2023 +0200

    Update intellisense.targets (#92868)

    * Update intellisense.targets

    * Update System.Text.Json.csproj

commit c92caa419873bbb5c51997c0f613ea5b5b1d22ec
Author: Marek Fišera <[email protected]>
Date:   Mon Oct 2 11:28:16 2023 +0200

    [browser] Remove duplicated marshaling of return value for JSExport (#92403)

    * Remove duplicated marshaling of return value for JSExport
    * Move unmarshal and return value marshal into try block

commit 47390d8f1e541a8ceb3998bb300748f751c9aa75
Author: Tomasz Sowiński <[email protected]>
Date:   Mon Oct 2 11:08:08 2023 +0200

    [RISC-V] Fix target type unsignedness detection in genFloatToIntCast() (#92694)

    * [RISC-V] Fix target type unsignedness detection in genFloatToIntCast()

    treeNode->gtFlags & GTF_UNSIGNED means unsignedness of the source type. Use varTypeIsUnsigned instead which checks for VTF_UNS on target type classification.

    Fixes TryConvertToSaturatingUInt64Test and TryConvertToTruncatingUInt64Test from System.Runtime.Numerics.ComplexTests_GenericMath.

    * Fix compilation without FEATURE_TIERED_COMPILATION

commit f47c963e966f000b59c79dc9acb5305a07d0031a
Author: t-mustafin <[email protected]>
Date:   Mon Oct 2 11:03:04 2023 +0300

    [RISC-V] regArg dependcies unrolling in genFnPrologCalleeRegArgs() (#91904)

commit b9622e1cbb8357e4a21fd1fe92097fd15cf137b2
Author: Djuradj Kurepa <[email protected]>
Date:   Mon Oct 2 09:13:40 2023 +0200

    Check DotNetFinalVersionKind when setting WorkloadVersionSuffix (#91792)

commit eae953bb60c1345a69d52a4cbd75cd3a523a1d13
Author: Zoltan Varga <[email protected]>
Date:   Sun Oct 1 22:58:00 2023 -0400

    [llvm] Fix spilling of valuetypes to the stack if they are passed by addr. (#92658)

    The previous code would spill the valuetype when it was passed by addr,
    and another bblock could try to read from the unitialized stack location.

commit 215145e95981ee4917ff3432acc44114f835126c
Author: Egor Bogatov <[email protected]>
Date:   Mon Oct 2 00:34:30 2023 +0200

    Call fgRenumberBlocks in optIfConversion (#92821)

commit 2508c70038098c58c9fcf6cd59267d781ee666ce
Author: Tomáš Rylek <[email protected]>
Date:   Sun Oct 1 23:20:38 2023 +0200

    Convert all remaining tests in the Loader subtree to the merged model (#92407)

commit 8ba039c4ef442baf97972fb99314656c7451b09e
Author: dotnet-maestro[bot] <42748379+dotnet-maestro[bot]@users.noreply.github.com>
Date:   Sun Oct 1 12:42:26 2023 -0500

    [main] Update dependencies from dotnet/installer (#92848)

    * Update dependencies from https://github.com/dotnet/installer build 20230929.5

    Microsoft.Dotnet.Sdk.Internal
     From Version 9.0.100-alpha.1.23478.5 -> To Version 9.0.100-alpha.1.23479.5

    * Update dependencies from https://github.com/dotnet/installer build 20230929.5

    Microsoft.Dotnet.Sdk.Internal
     From Version 9.0.100-alpha.1.23478.5 -> To Version 9.0.100-alpha.1.23479.5

    ---------

    Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

commit 90d59646f497fcbb8a1f2c78c684cf4ba3325e09
Author: dotnet-maestro[bot] <42748379+dotnet-maestro[bot]@users.noreply.github.com>
Date:   Sun Oct 1 15:48:39 2023 +0000

    [main] Update dependencies from dotnet/emsdk dotnet/sdk (#92815)

    [main] Update dependencies from dotnet/emsdk dotnet/sdk

commit 3bc1508bb72cf9c24c5f66b1226fd5f1d71ab7dd
Author: Alexander Köplinger <[email protected]>
Date:   Sun Oct 1 09:44:15 2023 +0200

    Use UnsafeAccessor in JSHostImplementation instead of reflection (#92755)

commit c58debe7340a741901475cb104915a5aba376fbb
Author: Michal Strehovský <[email protected]>
Date:   Sun Oct 1 15:53:23 2023 +0900

    Preinitialize pop/switch/Type.IsValueType (#92841)

    These showed up in ASP.NET Stage1 and were low hanging enough.

commit 3025e30b4da38ceb7a6b765ee838b1795b0d1d6b
Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Date:   Sat Sep 30 22:24:03 2023 -0400

    Automated bump of chrome version (#92854)

commit 849c0fd374aa69c6506536510484bedbc53a48b4
Author: Ankit Jain <[email protected]>
Date:   Sat Sep 30 15:58:47 2023 -0400

    [wasm] Use specific version of v8 for tests (#91633)

    * [wasm] Add support for installing V8

    * [wasm] Use provisioned v8 for library tests

    * [wasm] WBT: Use provisioned v8

    * [wasm] enable use of provisioned v8 for library tests

    * [wasm] add MSBUILD_ARGS for build-runtime-tests make target

    * update docs

    * Don't install v8 for runtime tests

    * [wasm] CI: trigger library test jobs when chrome version changes

    * Disable provisioning v8 when building runtime tests

    * address review feedback

    * [wasm] Disable installing v8 for runtime tests

    * Address review feedback

    * fix stamping for v8

commit 5b217b109184eb7ec64ddd04482bbcac0010562f
Author: Viktor Hofer <[email protected]>
Date:   Sat Sep 30 21:56:22 2023 +0200

    Update targetingpacks.targets (#88991)

    * Update targetingpacks.targets

    The .NET 8 Preview 6 SDK has the features required to simplify the targetingpacks.targets logic.

    * Update targetingpacks.targets

    * Update targetingpacks.targets

    * Update known items

    * Update targetingpacks.targets

    * Update targetingpacks.targets

commit 8dad137b7a51adba94c7224768a4c5c76b017f4d
Author: Andy Ayers <[email protected]>
Date:   Sat Sep 30 08:20:18 2023 -0700

    JIT: fix self-conflicting HFA arg prolog handling for arm64 (#92355)

    Fix prolog handling in the case where the in-body destination register
    for an HFA overlaps with one of the HFA argument registers. For instance
    the HFA is passed in `s0-s3` and needs to end up in `v3`.

    This requires special handling because the dependence analysis done in
    `genFnPrologCalleeRegArgs` only tracks entire registers, not parts of
    registers.

    Fixes #83167

commit 420717ee369d44906f5ba6bbf94ee28058c56037
Author: Filip Navara <[email protected]>
Date:   Sat Sep 30 15:38:28 2023 +0200

    Split off patched code into separate .S file and disable subsections-via-symbols for it (#92555)

    * [amd64/arm64] Split off patched code into separate .S file and disable subsections-via-symbols for it

    * [amd64/arm64] Split off patched code into separate .asm file

    [arm64] Move JIT_UpdateWriteBarrierState out of the patched region to match implementation in .S file

    * Remove NO_SUBSECTIONS_VIA_SYMBOLS

commit 588193f9be52f4cfd5dc57bed599c30b5fc3697d
Author: Egor Bogatov <[email protected]>
Date:   Sat Sep 30 14:02:35 2023 +0200

    Remove fgUpdateFlowGraph from optOptimizeFlow (#92839)

commit a2818c5728833ffc1988eb24b6648dc09554d19d
Author: Koundinya Veluri <[email protected]>
Date:   Sat Sep 30 00:14:34 2023 -0700

    Include info about system call errors in some exceptions from operating on named mutexes (#92603)

    * Include info about system call errors in some exceptions from operating on named mutexes

    - Added new PAL APIs for creating and opening mutexes that take a string buffer for system call error info. These are called with a stack-allocated buffer and upon error the system call errors are appended to the exception message.
    - When there is a system call failure that leads to the PAL API failing, some info is appended to the error string, including the system call, relevant arguments, return value, and `errno`
    - `chmod` on OSX seemingly can be interrupted by signals, fixed to retry. Also fixed a couple other small things.

    Fixes https://github.com/dotnet/runtime/issues/89090

commit cc072997b68b2412c0f7667737b0619f4f04241d
Author: Jeremy Koritzinsky <[email protected]>
Date:   Fri Sep 29 17:13:33 2023 -0700

    Allow multiple post-build steps and allow templated pre and post-build steps (#92375)

commit b88d3b9cba8467e3f50b7af9591f43c70053b5c9
Author: Stephen Toub <[email protected]>
Date:   Fri Sep 29 20:05:53 2023 -0400

    Throw exception in TensorPrimitives for unsupported span overlaps (#92838)

commit eaa8ea19f4b2f5e222f92707e8f7b1fc3bdd0da9
Author: Eirik Tsarpalis <[email protected]>
Date:   Sat Sep 30 00:47:21 2023 +0300

    Apply sequence equality comparison to the final Regex incremental value. (#92835)

    * Apply sequence equality comparison to the final Regex incremental value.

    * Avoid using SequenceEqual

commit 01104d6d3bfc6340599986b85c514d1194567a77
Author: Eirik Tsarpalis <[email protected]>
Date:   Sat Sep 30 00:47:12 2023 +0300

    Remove CompilationProvider dependency from the source generator. (#92833)

commit d1972fe4ec6b58097b9c7641308f6827e356ab2a
Author: Stephen Toub <[email protected]>
Date:   Fri Sep 29 16:25:31 2023 -0400

    Vectorize TensorPrimitives.ConvertToSingle (#92779)

    * Vectorize TensorPrimitives.ConvertToSingle

    * Address PR feedback

commit e89daba754e84dba3a86c92e8c2a714a75a2f0d0
Author: Mitchell Hwang <[email protected]>
Date:   Fri Sep 29 14:10:44 2023 -0400

    [tests][iOS] Fix artifacts path (#92783)

commit 86fa7866871973c0ecb6c60bb40232872b22ec49
Author: Aman Khalid <[email protected]>
Date:   Fri Sep 29 13:58:02 2023 -0400

    Always emit jump from hot finally block to cold target (#92797)

    On some platforms, CodeGen::genCallFinally() will remove the jump between a finally block in a call-finally pair to its jump target if the target is its immediate successor in the block list (in other words, we just fall through). However, if we are doing hot/cold splitting, it is possible for the finally block to be the last hot block, and its target the first cold block. Thus, if the two are contiguous in the block list but in separate regions, we must always emit a jump.

commit 8fa50641476fb1e08c2d385f16cdd80a37749e93
Author: Bruce Forstall <[email protected]>
Date:   Fri Sep 29 10:47:35 2023 -0700

    Add stress mode for arm/arm64 function fragment splitting (#92802)

    Set JitSplitFunctionSize to either 4 or 200 under new STRESS_UNWIND mode.

commit 17c118b5b2e2c540540bef667562ed7db62e9216
Author: dotnet-maestro[bot] <42748379+dotnet-maestro[bot]@users.noreply.github.com>
Date:   Fri Sep 29 12:47:16 2023 -0500

    Update dependencies from https://github.com/dotnet/roslyn-analyzers build 20230928.1 (#92814)

    Microsoft.CodeAnalysis.Analyzers , Microsoft.CodeAnalysis.NetAnalyzers
     From Version 3.11.0-beta1.23475.2 -> To Version 3.11.0-beta1.23478.1

    Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

commit 1ffd8e3ec1e1895e08d5e4276aee99f674eae6bb
Author: dotnet-maestro[bot] <42748379+dotnet-maestro[bot]@users.noreply.github.com>
Date:   Fri Sep 29 12:46:57 2023 -0500

    Update dependencies from https://github.com/dotnet/installer build 20230928.5 (#92817)

    Microsoft.Dotnet.Sdk.Internal
     From Version 9.0.100-alpha.1.23477.26 -> To Version 9.0.100-alpha.1.23478.5

    Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

commit 1930da2080179fcf0dcf9f45f0b513fd45714fe3
Author: Tymoteusz Wenerski <[email protected]>
Date:   Fri Sep 29 19:25:34 2023 +0200

    Fix Common.Tests.GetPrettyName_CannotRead_ReturnsNull test for root user (#92695)

    * fix Common.Tests.GetPrettyName_CannotRead_ReturnsNull test for root user

    * remove direct call to libc in Common.Tests.GetPrettyName_CannotRead_ReturnsNull

    * Update src/libraries/Common/tests/Tests/Interop/OSReleaseTests.cs

    * split Common.Tests.OSReleaseTests.GetPrettyName_CannotRead_ReturnsNull into two test cases

    * replace ifs with ConditionalFact in Common.Tests.OSReleaseTests class

    ---------

    Co-authored-by: Dan Moseley <[email protected]>

commit 04d38d8e7becb912494d097133f8124928d5dbbb
Author: Jeremy Koritzinsky <[email protected]>
Date:   Fri Sep 29 10:15:29 2023 -0700

    Use a different crossgen2 when running crossgen2 during our build than the crossgen2 that we are shipping (#92677)

commit 571df3ef8e741c68d4a682ed54a086876d1b6514
Author: Bruce Forstall <[email protected]>
Date:   Fri Sep 29 10:02:06 2023 -0700

    Allow `key#value` for superpmi JIT option specification (#92803)

    superpmi.py will pass this through from the `-jitoption` /
    `-base_jit_option` / `-diff_jit_option` to superpmi.exe
    `-jitoption` and `-jit2option`.

    Currently, the format is `key=value`. I wrap invocation of superpmi.py
    with Windows batch file scripting, which has an annoying problem of
    "eating" the equals size `=`. This works around that problem. I can't
    think of any case where `#` is needed in a key or value, hence that choice
    as an additional option.

commit 8358704bd93f984b5faf4be550e7872ef74187c0
Author: Bruce Forstall <[email protected]>
Date:   Fri Sep 29 10:01:13 2023 -0700

    Move variable scope tracking code (#92800)

    Move it out of codegencommon.cpp and into scopeinfo.cpp.

    This is both to centralize the code but also to reduce the size of
    the very large codegencommon.cpp.

commit 6460ccb50e7d71d560176aff4b28f66829324c29
Author: dotnet-maestro[bot] <42748379+dotnet-maestro[bot]@users.noreply.github.com>
Date:   Fri Sep 29 18:19:11 2023 +0200

    [main] Update dependencies from dnceng/internal/dotnet-optimization (#92813)

    Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

commit 1c6d909c23f87a24941d3263702948b274e9f1d1
Author: Jakob Botsch Nielsen <[email protected]>
Date:   Fri Sep 29 18:07:08 2023 +0200

    JIT: Optimize SequenceEqual to use ccmp on ARM64 (#92810)

    In the original PR we could not get this this working due to some
    conservative interference. This now does the right thing with #92710
    merged.

    Also change LowerCallMemcmp/LowerCallMemmove to return next node to
    lower just to align it a bit more with other functions.

commit e3d37a8e996184222245b0dcbdf9335c976b2302
Author: Stephen Toub <[email protected]>
Date:   Fri Sep 29 11:44:14 2023 -0400

    Enable TensorPrimitives to perform in-place operations (#92820)

    Some operations would produce incorrect results if the same span was passed as both an input and an output.  When vectorization was employed but the span's length wasn't a perfect multiple of a vector, we'd do the standard trick of performing one last operation on the last vector's worth of data; however, that relies on the operation being idempotent, and if a previous operation has overwritten input with a new value due to the same memory being used for input and output, some operations won't be idempotent.  This fixes that by masking off the already processed elements.  It adds tests to validate in-place use works, and it updates the docs to carve out this valid overlapping.

commit 56251ecc5e2f185249acee357d5410e1f26c590e
Author: Stephen Toub <[email protected]>
Date:   Fri Sep 29 11:27:31 2023 -0400

    Vectorize TensorPrimitives.ConvertToHalf (#92715)

commit 0cc9f2193bb447db60a81b05986ef4f513bd2381
Author: SwapnilGaikwad <[email protected]>
Date:   Fri Sep 29 14:50:32 2023 +0100

    Implement StoreVector64x2 and StoreVector128x2 for Arm64 (#92109)

    * Implement StoreVector128x2 for Arm64

    * Remove redundant implmentations

    * Implement StoreVector64x2 for Arm64

    * Remove StoreVector64x2 implementation for Arm64

    This reverts commit 49ef72e3a3eaa58d3b3338dc5d6d80a7ca0b50b5.

    * Fix instruction type for the StoreVector128x2 intrinsic

    * Review comments:

    * Arrange APIs alphabetically

    * Add StoreVector64x2

    * fix the invalid instructions

    * Add test cases

    * Update src/coreclr/jit/hwintrinsicarm64.cpp

    Co-authored-by: Bruce Forstall <[email protected]>

    ---------

    Co-authored-by: Kunal Pathak <[email protected]>
    Co-authored-by: Bruce Forstall <[email protected]>

commit f4012631302d964dfe75a657fc0579b1e9842e79
Author: SingleAccretion <[email protected]>
Date:   Fri Sep 29 15:59:58 2023 +0300

    Do not nop-out SSA definitions in block morphing (#92786)

    SSA definitions cannot be deleted.

commit 38fd485315c557f2a627deb1abc03616eb29153c
Author: Alexander Köplinger <[email protected]>
Date:   Fri Sep 29 12:19:41 2023 +0200

    [mono] Cleanup unused runtime functions (#91681)

    - Removes unused functions
    - Removes cmake configure checks for functions/headers that are no longer needed
    - Renames HAVE_UWP_WINAPI_SUPPORT to HAVE_APP_WINAPI_SUPPORT
    - Move MSVC warning disables into cmake so it is more visible

    Co-authored-by: Johan Lorensson <[email protected]>

commit e81671f0a66b48212d444f69f0c9b2ef4a04f903
Author: Radek Doulik <[email protected]>
Date:   Fri Sep 29 11:47:50 2023 +0200

    [wasm] Supress policheck warning in blazor-sample (#92711)

    * [wasm] Supress policheck warning in blazor-sample

    Replace the offending part in the layout name. I think the suit-spade
    is false positive, I used just sp in place of spade to silence it.

    * Feedback

commit 8ff18938b130c66da7478cfe540f5acd8f24a9b0
Author: Jakob Botsch Nielsen <[email protected]>
Date:   Fri Sep 29 11:41:11 2023 +0200

    JIT: Make effect handling in lowering less conservative (#92710)

    The interference checking in lowering bases some of its checks on
    GenTree::gtFlags. This is conservative since it includes effect flags of
    operands. For LIR this does not really make sense and ends up being
    conservative.

    This PR replaces the relevant uses of gtFlags with a new
    GenTree::OperEffects() that computes the relevant effect flags for the
    node, excluding operands. We already know how to recompute effect flags
    other than GTF_GLOB_REF and GTF_ORDER_SIDEEFF. This PR adds functions
    for these as well (the GTF_GLOB_REF version
    GenTree::OperRequiresGlobRefFlag is courtesy of @SingleAccretion).

    For GTF_ORDER_SIDEEFF we add a GenTree::OperSupportsOrderingSideEffect
    which captures explicitly (and conservatively) the current cases where
    we are setting the flag, and only allows these cases to support the
    flag. Setting the flag for other cases may result in the flag being
    removed or ignored. There is a new `GenTree::SetHasOrderingSideEffect` to
    add the flag which also asserts that it is only added for trees that are
    supported.

    Fix #92699

commit 7d9b92dee3f7687571a4505f00edb72458743ce7
Author: Radek Zikmund <[email protected]>
Date:   Fri Sep 29 10:22:07 2023 +0200

    Correctly set sendTrustList flag when saving credentials to cache (#92731)

commit 8ce4279520358f344ddd5c82d8f66cc653cf9a4f
Author: SingleAccretion <[email protected]>
Date:   Fri Sep 29 06:52:25 2023 +0300

    Update RyuJit overview (#92789)

commit 62d2c91b78a258e976db78e926e9e26b606214f1
Author: Andrew Au <[email protected]>
Date:   Thu Sep 28 16:34:37 2023 -0700

    Converge Representations between NativeAOT and CoreCLR (#91821)

commit 95b9a8d1b4ee4692f048febbdd58145572b30a84
Author: Stephen Toub <[email protected]>
Date:   Thu Sep 28 19:32:08 2023 -0400

    Flesh out TensorPrimitives XML docs (#92749)

    * Flesh out TensorPrimitives XML docs

    * Address PR feedback

    - Remove use of FusedMultiplyAdd from all but CosineSimilarity
    - Remove comments about platform/OS-specific behavior from Add/AddMultiply/Subtract/Multiply/MultiplyAdd/Divide/Negate
    - Loosen comments about NaN and which exact one is returned

    * Address PR feedback

commit 9765a3c03a1d03f8ed4485ed4c00e9b9fd9b78f9
Author: Michal Strehovský <[email protected]>
Date:   Fri Sep 29 07:03:52 2023 +0900

    Add more static preinitialization support (#92739)

    Resolves #78681 (or "there's nothing else we'd be willing to do for it"). This is the rest of what I implemented trying to get `SearchValues.Create(someVeryLongString)` to preinitialize. It doesn't actually enable more `SearchValues` scenarios because I eventually hit codepaths that would require us to implement hardware intrinsics support in the interpreter. The `SearchValues` scenarios that we do support were implemented in #92470 and #92666. But since I already implemented this, here it is; maybe it will be useful for something else:

    * Support for modelling `Span<X>`, including creating it from stackalloc
    * Support for math/comparisons with native int
    * `Unsafe.Add`

commit c01efb87f8aeb05c685f6cd78dabe2593a96a011
Author: dotnet-maestro[bot] <42748379+dotnet-maestro[bot]@users.noreply.github.com>
Date:   Thu Sep 28 17:26:40 2023 -0400

    [main] Update dependencies from dotnet/installer (#92703)

    * Update dependencies from https://github.com/dotnet/installer build 20230927.3

    Microsoft.Dotnet.Sdk.Internal
     From Version 9.0.100-alpha.1.23474.1 -> To Version 9.0.100-alpha.1.23477.3

    * [wasm] WBT: Update skiasharp reference

    `blz_deploy_on_build_Debug_True_npl3f0nk_qee.csproj : error NU1903: Package 'SkiaSharp' 2.88.4-preview.76 has a known high severity vulnerability`

    * Update dependencies from https://github.com/dotnet/installer build 20230927.26

    Microsoft.Dotnet.Sdk.Internal
     From Version 9.0.100-alpha.1.23474.1 -> To Version 9.0.100-alpha.1.23477.26

    ---------

    Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
    Co-authored-by: Ankit Jain <[email protected]>

commit 9158141f641a63bbaeb7c45f2666679c4dc117b8
Author: Jan Kotas <[email protected]>
Date:   Thu Sep 28 13:48:13 2023 -0700

    Delete misc unnecessary code (#92764)

commit 876f763a8ff8345b61897ff6297876445b2b484f
Author: Buyaa Namnan <[email protected]>
Date:   Thu Sep 28 11:44:29 2023 -0700

    Account port number already included within server string (#92748)

    * Account port number already included within server string

    * Refactor the test

    * Apply feedback

commit 87575811f76244143b7571005979b8fa8ab92e2f
Author: Jackson Schuster <[email protected]>
Date:   Thu Sep 28 10:59:07 2023 -0700

    Remove Unwrap flag from UniqueComInterfaceMarshaller (#92599)

    The Unwrap flag only has effect when UniqueInstance is not set. To avoid confusion from anyone referencing this code, we should remove it here.

    NativeAOT needed to move the Unwrap code to inside the !UniqueInstance block to match behavior of CoreCLR. This should only be noticeable when using ComWrappers to wrap an unwrap the same object in the same NativeAOT instance. In-Proc COM with different servers and clients won't hit this behavior.

commit 3138a806ccc135403d03a0a2a2bfc10e9c62b43d
Author: Tarcisio <[email protected]>
Date:   Thu Sep 28 14:53:21 2023 -0300

    Removes redundant code from `JsonCamelCaseNamingPolicy.cs` (#92738)

commit 1cf79260b6f0684defb8a4a3aaf27c1806b55bbf
Author: Bruce Forstall <[email protected]>
Date:   Thu Sep 28 10:17:41 2023 -0700

    Update JIT format job to pass new `--cross` argument on Linux (#92751)

    * Update JIT format job to pass new `--cross` argument on Linux

    This argument is passed through to the jit-format tool and is used
    when invoking build-runtime.sh on Linux when in a cross-build
    scenario, such as CI builds in Mariner.

    * Fix copy/paste error

commit c0c7d3ea4ab741474d598ee56bcd08ecfb38215c
Author: dotnet-maestro[bot] <42748379+dotnet-maestro[bot]@users.noreply.github.com>
Date:   Thu Sep 28 18:30:23 2023 +0200

    Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-optimization build 20230927.3 (#92761)

    optimization.linux-arm64.MIBC.Runtime , optimization.linux-x64.MIBC.Runtime , optimization.windows_nt-arm64.MIBC.Runtime , optimization.windows_nt-x64.MIBC.Runtime , optimization.windows_nt-x86.MIBC.Runtime , optimization.PGO.CoreCLR
     From Version 1.0.0-prerelease.23471.3 -> To Version 1.0.0-prerelease.23477.3

    Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

commit 014fe3503b1ba21e3179ff973ba0bc18e96aa2a7
Author: dotnet-maestro[bot] <42748379+dotnet-maestro[bot]@users.noreply.github.com>
Date:   Thu Sep 28 18:29:55 2023 +0200

    [main] Update dependencies from dotnet/xharness dotnet/cecil dotnet/sdk (#92700)

    * Update dependencies from https://github.com/dotnet/xharness build 20230927.1

    Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Common , Microsoft.DotNet.XHarness.TestRunners.Xunit
     From Version 8.0.0-prerelease.23471.1 -> To Version 8.0.0-prerelease.23477.1

    * Update dependencies from https://github.com/dotnet/cecil build 20230926.1

    Microsoft.DotNet.Cecil
     From Version 0.11.4-alpha.23468.2 -> To Version 0.11.4-alpha.23476.1

    * Update dependencies from https://github.com/dotnet/sdk build 20230927.2

    Microsoft.DotNet.ApiCompat.Task
     From Version 9.0.100-alpha.1.23476.1 -> To Version 9.0.100-alpha.1.23477.2

    * Update dependencies from https://github.com/dotnet/xharness build 20230927.1

    Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Common , Microsoft.DotNet.XHarness.TestRunners.Xunit
     From Version 8.0.0-prerelease.23471.1 -> To Version 8.0.0-prerelease.23477.1

    * Update dependencies from https://github.com/dotnet/cecil build 20230926.1

    Microsoft.DotNet.Cecil
     From Version 0.11.4-alpha.23468.2 -> To Version 0.11.4-alpha.23476.1

    * Update dependencies from https://github.com/dotnet/sdk build 20230927.63

    Microsoft.DotNet.ApiCompat.Task
     From Version 9.0.100-alpha.1.23476.1 -> To Version 9.0.100-alpha.1.23477.63

    ---------

    Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

commit ecca73de5bbce1b76a6b26cea9df464776328ff1
Author: Alexander Köplinger <[email protected]>
Date:   Thu Sep 28 17:56:20 2023 +0200

    Fix link in ILLink.Tasks README.md (#92769)

commit 26d9e9f1e0202a144b4f208e4fb3f4dde2d9bdb8
Author: Zoltan Varga <[email protected]>
Date:   Thu Sep 28 11:17:17 2023 -0400

    [llvm] Avoid zero extending non-negative constant array indexes, its not needed and it prevents abcrem from working. (#92760)

commit 612deb2e5cb170a5eb2dc6f563eaa15027ae36fe
Author: Ilona Tomkowicz <[email protected]>
Date:   Thu Sep 28 16:34:07 2023 +0200

    [wasm][debugger] Support passing identifiers to methods (#92758)

    * Basic fix.

    * More tests.

    * Move tests to more suitable place.

    * Pause earlier.

commit 29c4e3bac5514d3065597c048e74e31898527f92
Author: Jakob Botsch Nielsen <[email protected]>
Date:   Thu Sep 28 14:54:36 2023 +0200

    JIT: Unify and clean up unspilling (#91663)

commit 3bf40a378f00cb5bf18ff62796bc7097719b974c
Author: Stephen Toub <[email protected]>
Date:   Thu Sep 28 08:51:48 2023 -0400

    Update TensorPrimitives aggregations to vectorize handling of remaining elements (#92672)

    * Update TensorPrimitives.CosineSimilarity to vectorize handling of remaining elements

    * Vectorize remainder handling for Aggregate helpers

commit dc1f86add82e0573fbb40cc6ff9bcf0b56a2ce78
Author: Jakob Botsch Nielsen <[email protected]>
Date:   Thu Sep 28 13:50:22 2023 +0200

    JIT: Promote size-wise improvements in physical promotion (#92717)

    I hit the following case:
    ```
    Evaluating access byref @000
      Single write-back cost: 3
      Write backs: 0
      Read backs: 0
      Estimated cycle improvement: 0 cycles per invocation
      Estimated size improvement: 2 bytes
    Disqualifying replacement
    ```

    These cases happen when the blocks that have candidates for promotion in
    them have bbWeight equal to 0.

    If we estimate a size improvement without a cycle improvement it still
    makes sense to promote a replacement. More generally, a large size
    improvement can make up for a small cycle regression, so add a heuristic
    similar to the existing one for this. I've set it to be quite
    conservative: we require 100 bytes of size improvement before we allow 1
    cycle of regression. This is enough to handle the common case where the
    cycle improvement is 0 due to the bbWeight = 0.

commit b1f368fcd17620494a18735e1bf0729459302dc0
Author: Zoltan Varga <[email protected]>
Date:   Thu Sep 28 06:19:19 2023 -0400

    [mono] Enable SIMD intrinsics on winx64. (#92673)

    * [mono] Enable SIMD intrinsics on winx64.

    * Re-enable decompose on SIMD intrinsics on Windows.

    ---------

    Co-authored-by: lateralusX <[email protected]>

commit f4fa6554ace1ea713d1106dc29f9de3b99c2c92b
Author: Levi Broderick <[email protected]>
Date:   Wed Sep 27 18:14:28 2023 -0700

    Small refactor to BuildElement to address NRT changes (#92742)

commit 26346c0bb954a1886aa9271397c655d426429901
Author: Kevin Jones <[email protected]>
Date:   Wed Sep 27 21:05:46 2023 -0400

    Make PCP tests conditional by algorithm

    The ConditionalFact tests for a functional TPM using P-256. Tests assumed that if the TPM supported P-256, then P-384 and RSA is supported as well. This is not always the case - some TPMs implement 256 without support for 384.

    This changes the TPM conditional facts to be per-algorithm.

commit afda142df40a36e64454c460f8d790b43e71cee6
Author: Ankit Jain <[email protected]>
Date:   Wed Sep 27 20:12:36 2023 -0400

    [wasm] Fix Wasm.Build.Tests on `main` (#92741)

    * CI: Don't include ref pack when the tests need workload

    .. as it already includes it.

    https://github.com/dotnet/runtime/issues/92732 broke this as a
    side-effect which caused the `microsoft.netcore.app.ref` directory to
    not be created.

    Fixes https://github.com/dotnet/runtime/issues/92732 .

    * [wasm] WBT: Update skiasharp reference

    `blz_deploy_on_build_Debug_True_npl3f0nk_qee.csproj : error NU1903: Package 'SkiaSharp' 2.88.4-preview.76 has a known high severity vulnerability`

commit 7e6bd94c52b6f4d75f8e5098e814b4ffacdd5e02
Author: dotnet-maestro[bot] <42748379+dotnet-maestro[bot]@users.noreply.github.com>
Date:   Thu Sep 28 01:11:59 2023 +0200

    [main] Update dependencies from dotnet/roslyn-analyzers (#92639)

    Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
    Co-authored-by: Sven Boemer <[email protected]>

commit dd8e9aa8b5cee831ed3885921b79baddc40c2184
Author: Miha Zupan <[email protected]>
Date:   Thu Sep 28 00:11:01 2023 +0200

    Revert "Remove Latin1CharSearchValues (#91884)" (#92726)

    * Revert "Remove Latin1CharSearchValues (#91884)"

    This reverts commit 4a09c82215399c27f52277a8db7178270410c693.

    * Keep the projitems formatting

commit c3b1ed015aca1bceec2524ab187485d1d6467c70
Author: Michal Strehovský <[email protected]>
Date:   Thu Sep 28 06:34:29 2023 +0900

    Avoid membarrier on lower Android versions (#92686)

    Hopefully fixes #92196.

    I don't actually have an ARM64 device with an old Android version so I can't testing it actually fixes the problem, but it's a plausible fix.

commit 377fa6cab039d3c8ede839dc78445e42513135e9
Author: Hazel <[email protected]>
Date:   Wed Sep 27 15:52:05 2023 -0500

    Updated XML documentation for `IConfigurationProvider.GetReloadToken`. (#92720)

commit bc5f53c8f0243f06fbb1454b3196434a9dc7887d
Author: Ankit Jain <[email protected]>
Date:   Wed Sep 27 16:36:18 2023 -0400

    [wasm] GetChromeVersions: Fix fetching v8 version given a chrome version (#92667)

    * [wasm] GetChromeVersions: Fix fetching v8 version given a chrome version

    * Address feedback from Ilona Tomkowicz

commit c98c9dc5d9017762c33b449a75c8392ddb10cbf4
Author: Jeremy Koritzinsky <[email protected]>
Date:   Wed Sep 27 11:04:31 2023 -0700

    Move more sprintf usages to snprintf (#92674)

commit 5c391f6b6b463475ff26428c4561b91ce1978be0
Author: Jeremy Koritzinsky <[email protected]>
Date:   Wed Sep 27 10:56:47 2023 -0700

    Change how test assemblies opt-in to LibraryImportGenerator usage (#92661)

commit 95fe99c5646d123c879b9bf51711c90924336ce9
Author: Jeremy Koritzinsky <[email protected]>
Date:   Wed Sep 27 10:45:54 2023 -0700

    Don't build libraries native packages in the PGO leg (#92729)

commit 8a5283fcf1526e80255a35acbb8f9bc362c9f050
Author: Sven Boemer <[email protected]>
Date:   Wed Sep 27 09:52:31 2023 -0700

    Add illink analyzer support for field/property initializers (#92600)

    The dataflow analyzer was exiting early for cases where the owning
    symbol was not an `IMethodSymbol`. This meant we weren't running
    dataflow analysis for field and property initializers.

    This fixes it by allowing through cases where the owning symbol is not
    an `IMethodSymbol`, and adding testcases to validate that we don't hit
    asserts in the code paths that only light up for methods.

commit 273db667b3162792714a05b4bd1c5d328f33e5af
Author: Jan Vorlicek <[email protected]>
Date:   Wed Sep 27 18:48:48 2023 +0200

    Fix arm64 fragment unwinding (#92678)

    A bug in the Windows arm64 unwinder that existed a long time ago has
    caused problems with unwinding in functions split in multiple fragments
    in case the location in the function was in a secondary fragment. At
    that time, it was not discovered that it was a bug in the unwinder and
    it got "fixed" in the runtime by always using the first fragment unwind
    info. However, now it turned out that was actually incorrect in some
    cases. Checking the current state of the Windows unwinder revealed that
    a bug was fixed there that was causing the problem we were seeing.
    Effectively ignoring all the shadow prolog unwind info in the secondary
    fragments.
    This change reverts the old fix after the unwinder was updated.

commit cf978fdaf0726b57d76bc91e802adab0c9b8dc8f
Author: Egor Bogatov <[email protected]>
Date:   Wed Sep 27 18:48:24 2023 +0200

    Change order of loads in LowerMemcmp (#92704)

commit 954e0b898e39ccfaf557429a430f4f05aca7362d
Author: Alexander Köplinger <[email protected]>
Date:   Wed Sep 27 18:38:29 2023 +0200

    Fix LLVMAOT Mono runtime variant official build to produce correctly named runtime packs (#92712)

    In https://github.com/dotnet/runtime/commit/75ee623b8f0350a4b4be86fa71745a74beb059d1 the condition in `src/installer/pkg/sfx/Microsoft.NETCore.App/Microsoft.NETCore.App.Runtime.props` got changed from checking `MonoBundleLLVMOptimizer` to `MonoAOTEnableLLVM` but we weren't setting that property in runtime-official.yml so both jobs produced runtime packs with the same suffix, resulting in the artifact uploads randomly overwriting each other.

commit a707e940e6982b04b2f2832e9850e17e0f8dcfac
Author: Ivan Diaz Sanchez <[email protected]>
Date:   Wed Sep 27 08:52:01 2023 -0700

    Fix Excessive Encoding in Test Logs (#92286)

    * Removed special encoding that was rendering the test logs near
    impossible to read properly.

    * Adjusted the offending test to print the invalid character's hex code
    instead, and fixed it alongside its sibling test because they didn't
    handle all correct/incorrect cases properly.

    * Added special handling for illegal XML characters in the test results'
    XML logs.

    * Simplified the sanitizing algorithm to one pass, as per Dan's feedback.

commit e500dad300c739a35eb88edb3605f71eca18a4ac
Author: Lakshan Fernando <[email protected]>
Date:   Wed Sep 27 07:51:05 2023 -0700

    Switch to etw python script (#92508)

    * initial work with hacks to switch to EtwProvider python script

    * move to generated scripts

    * Fixes for some link issues

    * fix link issue

    * adding private etw callback to enable GC events

    * Fix x86 build break

    * fixing Linux build break

    * fixing gcpriv.h

    * making minimal typedefs

    * FB

    * Fix for posix break

commit 3db080c12ff2bf6fd4acc09109edeaee7c087dbb
Author: Aaron Robinson <[email protected]>
Date:   Wed Sep 27 06:30:23 2023 -0700

    Add tests for `UnsafeAccessor` on fields on generic types (#92657)

    * Add tests for field access on generics

    The tests are currently disabled.

    * Fix ILC to compile UnsafeAccessorsTests

    UnsafeAccessorsTests passes on NAOT.

commit d6c28d40954435cfacf3dbbeeaf6f7d41da213f5
Author: Jakob Botsch Nielsen <[email protected]>
Date:   Wed Sep 27 13:38:22 2023 +0200

    JIT: Handle remainder accesses more precisely in physical promotion liveness (#92651)

    The liveness pass in physical promotion will currently handle any struct
    LCL_FLD access of a physically promoted struct as accessing the
    remainder. However, if the LCL_FLD only touches promoted fields then the
    remainder is not actually used. There was a TODO around this which this
    PR fixes as I stumbled upon a case this would improve.

commit 374188723ce4853d827b44bbd17c96742da28d7a
Author: Zoltan Varga <[email protected]>
Date:   Wed Sep 27 07:35:12 2023 -0400

    [mono] Implement Vector128.Shuffle () for llvm on x64. (#92656)

commit ca8d6f0420096831766ec11c7d400e4f7ccc7a34
Author: Jan Dupej <[email protected]>
Date:   Wed Sep 27 10:25:53 2023 +0200

    [mono][aot] Type load checks do not fail at compile time but produce a runtime exception (#91261)

    * Enable tests.

    * When AOTing, type checks do not fail compilation but create a runtime exception.

    * Cleaned up type load error cleaning. TypeLoadException icall now has a message with type name.

    * Removed another instance of indiscriminate exception clearing.

    * Fixed build warning.

    * Using class const instead of string const. Reverted some compile to runtime errors that were not necessary for the unit tests.

    * White space.

    * Fixed build warning.

    * Trying to fix weird AOT errors, fixed type load throw function.

    * Fixed build error.

    * Special handling for classes that are NULL.

    * Providing for a null klass when generating exception.

    * Removed flow control directive from macro.

    * Fixed stack corruption.

    * Attempt to push the correct type onto the stack.

    * Fixing uninitialized ins.

    * Fixing ro_type.

    * Initializing ins.

    * Complex cases with type load failures replace method body with a throw.

    * Cleaning up superfluous code changes.

    * Restored sizeof cosntant on failed types.

commit d1d6a6b8910e23696ce27635da62086763b08785
Author: Michal Strehovský <[email protected]>
Date:   Wed Sep 27 15:34:38 2023 +0900

    Make it possible to preinitialize HW intrinsic IsSupported (#92666)

    * Move the IL rewriting for HW intrinsics `IsSuported` calls to `ILProvider` from `RyuJitCompilation`
    * Also rewrite constant true/false

commit 43f236d9e9fba323a55d27b3ba097f24ade16ef1
Author: Michal Strehovský <[email protected]>
Date:   Wed Sep 27 15:05:07 2023 +0900

    Extend preinitialization interpreter (#92470)

    Things that I added:

    * Support for `typeof(T) == typeof(Bar)` (this will be useful later, we'll eventually be able to also freeze these).
    * Support static interface method calls
    * Constrained method calls on valuetypes
    * More `ReadOnlySpan` construction patterns, `.Length`
    * More indirect load/store support

    Contributes to #78681. To full resolve this, we need to fix up things so we can answer `Sse2.IsSupported`.

commit 8e760396b1be0e90946…
@ghost ghost locked as resolved and limited conversation to collaborators Nov 3, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
arch-arm32 area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI JitStress CLR JIT issues involving JIT internal stress modes os-linux Linux OS (any supported distro)
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants