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

Improve JIT loop optimizations (.NET 7) #55235

Closed
2 of 5 tasks
BruceForstall opened this issue Jul 6, 2021 · 2 comments
Closed
2 of 5 tasks

Improve JIT loop optimizations (.NET 7) #55235

BruceForstall opened this issue Jul 6, 2021 · 2 comments
Assignees
Labels
area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI Bottom Up Work Not part of a theme, epic, or user story User Story A single user-facing feature. Can be grouped under an epic.
Milestone

Comments

@BruceForstall
Copy link
Member

BruceForstall commented Jul 6, 2021

This issue describes which loop optimization opportunities we intend to work on for .NET 7. A full summary of RyuJIT loop optimization opportunities is given in #65342.

Work in .NET 7

Cut

category:planning
theme:loop-opt
skill-level:expert
cost:large

@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. Bottom Up Work Not part of a theme, epic, or user story labels Jul 6, 2021
@BruceForstall BruceForstall added this to the 7.0.0 milestone Jul 6, 2021
@dotnet-issue-labeler dotnet-issue-labeler bot added the untriaged New issue has not been triaged by the area owner label Jul 6, 2021
@BruceForstall BruceForstall removed the untriaged New issue has not been triaged by the area owner label Jul 6, 2021
@jakobbotsch
Copy link
Member

Another good fit for loop unrolling may be tight loops with fcalls/pinvokes (with SuppressGCTransition) that can have GC suspension issues: #65300 (comment)

This issue should mainly show up if the CPU is spending a lot of time inside the fcall or pinvoke in relation to the loop body, so we have this issue mostly when the loop body is small. Thus a good solution might be to unroll the loop a number of times while inserting a single GC probe. This way we can solve (or at least improve) the GC suspension issue while keeping the overhead of the probe small.

@BruceForstall
Copy link
Member Author

The time for feature work in .NET 7 has passed, so closing this.

@ghost ghost locked as resolved and limited conversation to collaborators Sep 3, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI Bottom Up Work Not part of a theme, epic, or user story User Story A single user-facing feature. Can be grouped under an epic.
Projects
Archived in project
Development

No branches or pull requests

2 participants