gprs 30 and 31 are handled differently when they are reserved as the base-pointer and frame-pointer respectively. This fixes the offset of their fixed-stack objects when there are fpr calle-saved registers.
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
llvm/test/CodeGen/PowerPC/aix-framepointer-save-restore.ll | ||
---|---|---|
3 | Since you have a variable n here, I believe we've already had some testcases making sure frame pointer will definitely be used in this scenario, you can remove -frame-pointer=all. But I am okay if you want to keep it just in case. And if so, should we also add on for below 64bit case? |
- Removed now unused local variable.
- Removed -framepointer=all option in lit test.
- Fixed formatting of runsteps in new lit test.
llvm/lib/Target/PowerPC/PPCFrameLowering.cpp | ||
---|---|---|
1545–1546 | You are right, good catch. | |
llvm/test/CodeGen/PowerPC/aix-base-pointer.ll | ||
13 | I could have both a void return and a float return versions in the test, but I'm not sure its really worth the bother. | |
llvm/test/CodeGen/PowerPC/aix-framepointer-save-restore.ll | ||
3 | Good point. I removed it from the 64 bit run step but missed this one. |
llvm/test/CodeGen/PowerPC/aix-framepointer-save-restore.ll | ||
---|---|---|
3 | As a reference, external reviewers used to point out the proper way to arrange the testcase command line here: |
I'm pretty sure this variable is no longer needed.