Skip to content

JIT struct work planned for .NET 10 #109635

Open
@jakobbotsch

Description

@jakobbotsch

This issue captures the planned work items for .NET 10 with respect to struct improvements. This list is expected to change throughout the release cycle according to ongoing planning and discussions, with possible additions and subtractions to the scope.

The overall goal in .NET 10 is to expand the scope of physical promotion even further than we did in .NET 9. We have seen good improvements from switching classes of struct locals from old promotion to physical promotion and expect similar improvements for the remaining cases. A stretch goal is the full removal of old promotion.

ABI handling for physical promotion

The main limitation that stops physical promotion from replacing regular promotion is currently that it lacks the support around ABI boundaries that regular promotion has. This comes out of the fact that our multireg support is tied very directly into the existing promotion mechanism.
Thus, we expect to work on the following items in .NET 10:

Missing handling for physical promotion

Old promotion handles cases that new promotion does not handle yet. There is work to be done to identify these cases and come up with replacements.

Miscellaneous struct-related work items

Stretch goals

  • Remove old promotion

Metadata

Metadata

Assignees

Labels

User StoryA single user-facing feature. Can be grouped under an epic.area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI

Type

No type

Projects

Status

Team User Stories

Relationships

None yet

Development

No branches or pull requests

Issue actions