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

JIT: Improve inlining functions with EH in .NET 10 #108900

Open
4 tasks
BruceForstall opened this issue Oct 15, 2024 · 1 comment
Open
4 tasks

JIT: Improve inlining functions with EH in .NET 10 #108900

BruceForstall opened this issue Oct 15, 2024 · 1 comment
Assignees
Labels
area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI
Milestone

Comments

@BruceForstall
Copy link
Member

This item tracks work to improve inlining in RyuJIT in .NET 10.

Inline functions containing exception handling (EH)

The JIT currently will not inline a function with exception handling (EH) clauses (try/catch, try/finally, etc.). This work item is to remove that limitation.

A mechanical aspect of the implementation is simply to allow the insertion of the inlinee function EH information into the inliner EH table. Related, the inlinee must create and use its own EH table and not share the root EH table.

One specific note is that we still will not be able to inline any code with EH into an EH filter clause – that is not supported by the runtime. (I think this limitation goes back to Windows SEH, so maybe it can be considered for loosening?)

Specific work:

  • Give inlinee compiler its own EH table – don’t share root EH table
  • Support inserting inlinee EH table at a specific location in root EH table
  • Update inlinee IR with references to new EH table data.
  • Test and measure performance

Related

#62038

@BruceForstall BruceForstall added area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI User Story A single user-facing feature. Can be grouped under an epic. labels Oct 15, 2024
@BruceForstall BruceForstall added this to the 10.0.0 milestone Oct 15, 2024
@BruceForstall BruceForstall self-assigned this Oct 15, 2024
Copy link
Contributor

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

@JulieLeeMSFT JulieLeeMSFT moved this to Team User Stories in .NET Core CodeGen Oct 17, 2024
@JulieLeeMSFT JulieLeeMSFT changed the title JIT: Improve inlining in .NET 10 JIT: Improve inlining functions with EH in .NET 10 Oct 17, 2024
@JulieLeeMSFT JulieLeeMSFT removed the User Story A single user-facing feature. Can be grouped under an epic. label Oct 17, 2024
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
Projects
Status: Team User Stories
Development

No branches or pull requests

2 participants