Skip to content

JIT: Fix handling for SIMD types in async transformation #115652

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

Open
wants to merge 7 commits into
base: main
Choose a base branch
from

Conversation

jakobbotsch
Copy link
Member

Fix #115613

@github-actions github-actions bot added the needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners label May 16, 2025
@jakobbotsch jakobbotsch added area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI runtime-async and removed needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners labels May 16, 2025
Copy link
Contributor

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

@jakobbotsch jakobbotsch marked this pull request as ready for review May 19, 2025 18:03
@Copilot Copilot AI review requested due to automatic review settings May 19, 2025 18:03
Copy link
Contributor

@Copilot Copilot AI left a 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 SIMD type handling in the JIT async transformation, updates test warning suppression, and adds debug-phase tracking.

  • Replace block indirections/stores with load/store value nodes for struct and SIMD types in async.cpp.
  • Centralize CS1998 warning suppression in Directory.Build.props and remove per-file pragmas.
  • Add a debug-only assignment to record the “most recently active” async phase.

Reviewed Changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated no comments.

Show a summary per file
File Description
src/tests/async/pgo/pgo.cs Removed local #pragma warning disable CS1998.
src/tests/async/mincallcost-microbench/mincallcost-microbench.cs Removed local #pragma warning disable CS1998.
src/tests/async/fibonacci-without-yields-config-await/fibonacci-without-yields-config-await.cs Removed local #pragma warning disable CS1998 comment.
src/tests/async/Directory.Build.props Added CS1998 to global NoWarn to suppress warnings.
src/coreclr/jit/async.cpp Switched gtNewBlkIndir/gtNewStoreBlkNode to gtNewLoadValueNode/gtNewStoreValueNode, updated assert, and added INDEBUG phase tracking.

@jakobbotsch
Copy link
Member Author

cc @dotnet/jit-contrib PTAL @AndyAyersMS

Also disable the "method lacks await" warning in the async tests. I was adding a test here previously but ended up removing it, but I think those changes are ok anyway.

@jakobbotsch jakobbotsch requested a review from AndyAyersMS May 19, 2025 18:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI runtime-async
Projects
None yet
1 participant