Once all vector registers have been consumed by arguments, spill the remaining vector arguments to the stack.
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Unit Tests
Event Timeline
| llvm/lib/Target/PowerPC/PPCISelLowering.cpp | ||
|---|---|---|
| 6401–6406 | Do we need the VecSize variable here instead of just using 16? | |
| llvm/test/CodeGen/PowerPC/aix-vec-arg-spills-mir.ll | ||
| 2 | Does the script work with AIX now? It would make things a lot easier. | |
| 16 | Format to the beginning of the line. | |
| 79 | Maybe an empty line separating the 32bit and 64bit would be better. | |
| llvm/test/CodeGen/PowerPC/aix-vec-arg-spills.ll | ||
| 83 | ; can be removed, I think. | |
| llvm/test/CodeGen/PowerPC/aix-vector-stack.ll | ||
| 1–3 | I think we can remove this test? The ones you added do a much better job of showing what the ABI does. | |
Addressed review comments.
| llvm/lib/Target/PowerPC/PPCISelLowering.cpp | ||
|---|---|---|
| 6401–6406 | While it would still be obvious what the 16 represented if used directly in the allocate stack call I think its still better to name it. | |
| llvm/test/CodeGen/PowerPC/aix-vec-arg-spills-mir.ll | ||
| 2 | It did for this test. if you hit any cases where it fails to work let me know and we can fix it. | |
| llvm/test/CodeGen/PowerPC/aix-vector-stack.ll | ||
| 1–3 | I think its worthwhile to keep this test around too. The other ones are complex and take a long time to read and understand where everything gets mapped and why. This one shows exactly how we spill the vectors in a simple as possible way. If something breaks looking at the output of this test is much easier than having to wade through the other more thorough tests. | |
Do we need the VecSize variable here instead of just using 16?