-
Notifications
You must be signed in to change notification settings - Fork 5.3k
JIT: fix profiler leave hook kill set for void returns on arm #117201
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
Conversation
For arm void return methods, the profiler leave hook codegen kills R0. Model this so we don't inadvertently report R0 as gc-live. Fixes dotnet#117149.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR fixes an issue where the profiler leave hook kill set for ARM void return methods incorrectly handled R0. The changes update the getKillSetForReturn function to take a GenTree return node parameter across several architectures, ensuring that the kill set is correctly modeled based on the method's return type.
- Updates getKillSetForReturn to accept a GenTree pointer parameter.
- Applies changes in ARM, ARM64, ARC, RISCV64, and other related architectures.
- Ensures documentation in lsra.h is updated to match the new signature.
Reviewed Changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| src/coreclr/jit/lsraxarch.cpp | Passes the return node to getKillSetForReturn for ARM arch. |
| src/coreclr/jit/lsrariscv64.cpp | Passes the return node to getKillSetForReturn for RISCV64. |
| src/coreclr/jit/lsraloongarch64.cpp | Passes the return node to getKillSetForReturn for LoongArch64. |
| src/coreclr/jit/lsrabuild.cpp | Updates getKillSetForReturn signature and usage across methods. |
| src/coreclr/jit/lsraarm64.cpp | Applies new getKillSetForReturn signature for ARM64 code. |
| src/coreclr/jit/lsraarm.cpp | Applies new getKillSetForReturn signature for ARM code. |
| src/coreclr/jit/lsra.h | Updates the function declaration to include a GenTree parameter. |
|
@dotnet/jit-contrib PTAL gcstress extra may not run cleanly as there are other issues (stack overflow tester, etc). |
|
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch |
|
/azp run runtime-coreclr gcstress-extra |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
@dotnet/samsung Could you please take a look? These changes may be related to riscv64. |
1868fe7 is being scheduled for building and testingGIT: |
|
Ah, we just changed the jit GUID.. |
For arm void return methods, the profiler leave hook codegen kills R0. Model this so we don't inadvertently report R0 as gc-live.
Fixes #117149.