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.
Differential D96351
[PowerPC][AIX] Enable the default AltiVec ABI on AIX ZarkoCA on Feb 9 2021, 9:09 AM. Authored by
Details This patch adds support for the default AltiVec ABI for AIX. Vector registers 20 through 31 are marked as reserved and cannot
Diff Detail
Event Timeline
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.
Comment Actions Added CHECK-NOT in test cases.
Comment Actions One minor comment but otherwise LGTM.
|
clang-format: please reformat the code