This patch adds support for the default AltiVec ABI for AIX.
Vector registers 20 through 31 are marked as reserved and cannot
be used in the default ABI. This patch adds handling for this case
and also remove the default AltiVec ABI errors.
Paths
| Differential D96351
[PowerPC][AIX] Enable the default AltiVec ABI on AIX ClosedPublic Authored by ZarkoCA on Feb 9 2021, 9:09 AM.
Details Summary This patch adds support for the default AltiVec ABI for AIX. Vector registers 20 through 31 are marked as reserved and cannot
Diff Detail
Unit TestsFailed Event Timeline
ZarkoCA added inline comments.
ZarkoCA marked 3 inline comments as done. Comment Actions
Comment Actions I personally don't feel that the included test case changes are adequate for testing this patch. First of all, the test case probably does too much without equivalent checks - there is 32/64 bit, default/extended ABI and MIR/ASM testing all in a single file and the checks for default/extended at least do not appear to line up. There is no explicit checks that no spills/reloads exist for the reserved regs with default ABI. Furthermore, I think you should have a test case where you clobber all FPR's and VSR's except the ones in the vr20 - vr31 range in functions that perform FP/vector computations with checks that show the affected registers are not allocated.
Comment Actions Address comments:
Comment Actions
I added all_fprs_and_vecregs and then checked to see that vr20-31 are not allocated. The check is only in MIR since there is no way to distinguish float, vector, and gprs in assembly on AIX by register number alone (we don't have ppc-full-reg-names on AIX yet).
Comment Actions Add a test case for the warning message and add a FIXME to implement the warning in the front end. ZarkoCA added inline comments.
ZarkoCA marked an inline comment as done. Comment Actions
Comment Actions Added CHECK-NOT in test cases. ZarkoCA added inline comments.
sfertile retitled this revision from [AIX] Enable the default AltiVec ABI on AIX to [PowerPC][AIX] Enable the default AltiVec ABI on AIX.Mar 4 2021, 12:26 PM
Comment Actions One minor comment but otherwise LGTM.
This revision is now accepted and ready to land.Mar 5 2021, 9:09 AM This revision was landed with ongoing or failed builds.Mar 5 2021, 9:46 AM Closed by commit rG2b50ce152417: [PowerPC][AIX] Enable the default AltiVec ABI on AIX (authored by ZarkoCA). · Explain Why This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 326075 llvm/lib/Target/PowerPC/PPCISelLowering.cpp
llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp
llvm/test/CodeGen/PowerPC/aix-csr-vector-extabi.ll
llvm/test/CodeGen/PowerPC/aix-csr-vector.ll
llvm/test/CodeGen/PowerPC/aix-inlineasm-reserved-reg-dflt-warn.ll
llvm/test/CodeGen/PowerPC/aix-vec-abi.ll
|
clang-format: please reformat the code