Skip to content

Conversation

@shushanhf
Copy link
Contributor

[LoongArch64] Place async resumption info in read-write section which reference #123433

@github-actions github-actions bot added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Feb 10, 2026
@dotnet-policy-service dotnet-policy-service bot added the community-contribution Indicates that the PR has been added by a community member label Feb 10, 2026
@dotnet-policy-service
Copy link
Contributor

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

@shushanhf shushanhf force-pushed the async_resumption_LA64 branch from 9d18d82 to 4913f41 Compare February 10, 2026 11:56
@shushanhf shushanhf marked this pull request as draft February 10, 2026 12:29
@shushanhf
Copy link
Contributor Author

Hi, @jakobbotsch
after add this PR, the async test case failed liking this

Assert failure(PID 3342786 [0x003301c2], Thread: 3342786 [0x3301c2]): Assertion failed '!"Duplicate slots definitions found in GC information!"' in 'AwaitNotAsync:AsyncEntryPoint()' during 'Emit GC+EH tables    ' (IL size 123; hash 0xfcda73b9; MinOpts)

     File: /data/qiao/runtime/src/coreclr/gcinfo/gcinfoencoder.cpp:820

Can you give me some help? thanks

@jakobbotsch
Copy link
Member

Hi, @jakobbotsch after add this PR, the async test case failed liking this

Assert failure(PID 3342786 [0x003301c2], Thread: 3342786 [0x3301c2]): Assertion failed '!"Duplicate slots definitions found in GC information!"' in 'AwaitNotAsync:AsyncEntryPoint()' during 'Emit GC+EH tables    ' (IL size 123; hash 0xfcda73b9; MinOpts)

     File: /data/qiao/runtime/src/coreclr/gcinfo/gcinfoencoder.cpp:820

Can you give me some help? thanks

Hmm, I have never seen this assert before.

Did it only start failing with this PR? I notice that genAsyncResumeInfo emits INS_bl, but that seems wrong, isn't that a branch? It is supposed to compute the address of the data.

Note that the read-write section is specifically for NativeAOT (when emitting ELF format). For corerun/coreclr it should work without the relocations.

@shushanhf
Copy link
Contributor Author

Hmm, I have never seen this assert before.

Did it only start failing with this PR? I notice that genAsyncResumeInfo emits INS_bl, but that seems wrong, isn't that a branch? It is supposed to compute the address of the data.

This is not the finally real instruction name.

For corerun/coreclr it should work without the relocations.

Befor this PR the async test cases are also failed.

@jakobbotsch
Copy link
Member

Hmm, I have never seen this assert before.
Did it only start failing with this PR? I notice that genAsyncResumeInfo emits INS_bl, but that seems wrong, isn't that a branch? It is supposed to compute the address of the data.

This is not the finally real instruction name.

For corerun/coreclr it should work without the relocations.

Befor this PR the async test cases are also failed.

You may want to double check the LA64 handling for the runtime async specific nodes (GT_RETURN_SUSPEND, GT_ASYNC_RESUME_INFO, GT_RECORD_ASYNC_RESUME, GT_ASYNC_CONTINUATION) in LSRA and codegen.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

arch-loongarch64 area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI community-contribution Indicates that the PR has been added by a community member

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants