-
Notifications
You must be signed in to change notification settings - Fork 5.2k
[LoongArch64] add new ABI classifier. #101224
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
Conversation
|
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch |
4447663 to
c6bcb4f
Compare
e6c2bc3 to
5f13e34
Compare
|
There are some formatting errors as well. Can you please fix those? |
5d9669c to
780e867
Compare
780e867 to
75b7a50
Compare
75b7a50 to
3018cf6
Compare
jakobbotsch
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. Thank you!
|
Hi, @jakobbotsch Can you give some advices ? Besides, althought the split args within the |
Line 3335: This is handling to support SIMD types. The JIT can enregister a SIMD type parameter in a single vector register while it may be passed in multiple registers. For example, on arm64: public static float Test(float x, Vector3 v)
{
return v.Length();
}Parameter V00 ABI info: [00..04) reg d0
Parameter V01 ABI info: 3 segments
[0] [00..04) reg d1
[1] [04..08) reg d2
[2] [08..12) reg d3
...
*************** In genHomeRegisterParams()
4 registers in register parameter interference graph
d1
d0
<- d3 (offset: 8)
<- d2 (offset: 4)
<- d1
d2
d3
IN000b: fmov s0, s1
IN000c: mov v0.s[2], v3.s[0]
IN000d: mov v0.s[1], v2.s[0]I think you don't need this yet for LA64. Line 3041: This is purely an optimization for arm64 to make stores to the stack always the same size, so that we can use |
|
Thanks very much. |
|
* add new ABI classifier. * share `CodeGen::genHomeRegisterParams` with XARCH-ARMARCH.
Add new ABI classifier for LoongArch64. #100744
The first patch is only the
LoongArch64Classifier.The
CodeGen::genHomeRegisterParamswill be considered later whether to uniform within the codegencommon.cpp.