Uh oh!
There was an error while loading. Please reload this page.
[LoongArch64] add new ABI classifier. - #101224
Conversation
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch |
4447663 to
c6bcb4fCompareUh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
e6c2bc3 to
5f13e34CompareUh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
jakobbotsch
commented
Apr 18, 2024
There are some formatting errors as well. Can you please fix those? |
5d9669c to
780e867Compare780e867 to
75b7a50CompareUh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
75b7a50 to
3018cf6CompareHi, @jakobbotsch Can you give some advices ? Besides, althought the split args within the |
jakobbotsch
commented
Apr 18, 2024
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: publicstaticfloatTest(floatx,Vector3v){returnv.Length();}ParameterV00ABIinfo: [00..04) reg d0
ParameterV01ABIinfo: 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 |
shushanhf
commented
Apr 18, 2024
Thanks very much. |
shushanhf
commented
Apr 23, 2024
|
* 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.