-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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
[LSRA] Add support for allocating consecutive registers #39457
Comments
Tagging subscribers to this area: @tannergooding |
@CarolEidt Small correction: we need consecutive vector registers allocation for Arm64 intrinsics that would correspond to LD1-LD4, ST1-ST4 instruction not for LoadPairVector/StorePair since the latter can operate on an arbitrary pair of SIMD registers. |
@echesakovMSFT - thanks for clarifying! |
I don't think we will do this in .NET 6.0. Moving to future. |
This is currently supported in a limited form for Arm32 double registers, which must be an even/odd pair. However, this support is not well structured, and penalizes the common path that requires only a single register.
In order to support the Arm64
intrinsics that would correspond to LD1-LD4, ST1-ST4 instruction, we need the ability to allocate consecutive vector registers, and we don't want to penalize the common path for this case.LoadPairVector
intrinsics (#39243)One option would be to templatize the allocation methods such that the ones supporting consecutive registers would only be called when required.
Related: issue #8758 would presumably be addressed by such an approach.
category:proposal
theme:register-allocator
skill-level:expert
cost:large
impact:medium
The text was updated successfully, but these errors were encountered: