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: Consider reordering loads on ARM64 to make them amenable to ldp optimization #92756

Closed
jakobbotsch opened this issue Sep 28, 2023 · 4 comments
Labels
area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI
Milestone

Comments

@jakobbotsch
Copy link
Member

E.g. see the "after" codegen in #92710 (comment). It shouldn't be hard to add an optimization during lowering that tries to reorder related stores like this to make them amenable to the ldp peephole.

cc @dotnet/jit-contrib

@dotnet-issue-labeler dotnet-issue-labeler bot added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Sep 28, 2023
@ghost ghost added the untriaged New issue has not been triaged by the area owner label Sep 28, 2023
@ghost
Copy link

ghost commented Sep 28, 2023

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

Issue Details

E.g. see the "after" codegen in #92710 (comment). It shouldn't be hard to add an optimization during lowering that tries to reorder related stores like this to make them amenable to the ldp peephole.

cc @dotnet/jit-contrib

Author: jakobbotsch
Assignees: -
Labels:

area-CodeGen-coreclr, untriaged

Milestone: -

@jakobbotsch jakobbotsch added this to the 9.0.0 milestone Sep 28, 2023
@jakobbotsch jakobbotsch removed the untriaged New issue has not been triaged by the area owner label Sep 28, 2023
@jakobbotsch jakobbotsch modified the milestones: 9.0.0, Future Sep 28, 2023
@BruceForstall
Copy link
Member

Or maybe the ldr=>ldp peephole could look back more than one instruction? The trick would be to avoid throughput problems.

@jakobbotsch
Copy link
Member Author

Or maybe the ldr=>ldp peephole could look back more than one instruction? The trick would be to avoid throughput problems.

We also need some interference checking on instrDescs to do that (ensuring the register hasn't changed values and the def can be moved back)... we would also need to be able to change the past ldr instrDesc which I think we had some trouble with (current approach is to remove it and reinsert the ldp, I believe).

@jakobbotsch
Copy link
Member Author

Duplicate of #64815

@jakobbotsch jakobbotsch marked this as a duplicate of #64815 Oct 6, 2023
@jakobbotsch jakobbotsch closed this as not planned Won't fix, can't repro, duplicate, stale Oct 6, 2023
@ghost ghost locked as resolved and limited conversation to collaborators Nov 6, 2023
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
Projects
None yet
Development

No branches or pull requests

2 participants