Remove the previous error and add support for special handling of small
complex types as in PPC64 ELF ABI. As in, generate code to load from
varargs location and pack it in a temp variable, then return a pointer to
the struct.
Details
- Reviewers
cebowleratibm sfertile - Group Reviewers
Restricted Project - Commits
- rG1b0a71c5fc05: [PowerPC][AIX] Add support for varargs for complex types on AIX
Diff Detail
- Repository
- rG LLVM Github Monorepo
Unit Tests
Event Timeline
clang/lib/CodeGen/TargetInfo.cpp | ||
---|---|---|
4577–4583 | The 32-bit tests suggest that the "8 bytes"/"doublewords" in the above are not always so. |
- Fix comment to also describe what happens in 32bit mode
clang/lib/CodeGen/TargetInfo.cpp | ||
---|---|---|
4577–4583 | Yes, I missed updating that part of the comment previously, thank you. |
I suggest we separate the clang change and testing into a standalone patch, and the llvm backend tests into a standalone patch which we can commit separately.
clang/lib/CodeGen/TargetInfo.cpp | ||
---|---|---|
4585 | Minor nit: the code for PPC64 and this is almost identical, I think it should be factored into a separate helper function. | |
clang/test/CodeGen/aix32-complex-varargs.c | ||
3 | The code-gen for int and float won't change with this patch, lets pre-commit this test without the _Complex short and _Complex char portions now as an NFC patch. |
clang/test/CodeGen/aix32-complex-varargs.c | ||
---|---|---|
3 | I can't precommit this test unless I also remove the fatal error here: if (Ty->isAnyComplexType()) llvm::report_fatal_error("complex type is not supported on AIX yet"); But I believe that I can commit the llc tests and I'll go ahead and do that. |
clang/test/CodeGen/aix32-complex-varargs.c | ||
---|---|---|
3 | Sorry, not commit the llc tests but separate them in their own patch. |
- Removed llc tests
- Added a helper function to combine the PPC64_SVR4ABI and AIXABI treatment of complex types less than register size
LGTM.
clang/test/CodeGen/aix32-complex-varargs.c | ||
---|---|---|
3 | Sorry, I missed that. I was thinking since the word-size element types didn't change we should recommit heir tests, but since it was disabled with a fatal error that doesn't make sense. |
The 32-bit tests suggest that the "8 bytes"/"doublewords" in the above are not always so.