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
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?