[PATCH] D95443: IR/AArch64/X86: add "swifttailcc" calling convention.
Jon Roelofs via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed May 5 08:46:55 PDT 2021
jroelofs added subscribers: compnerd, jroelofs.
jroelofs added inline comments.
================
Comment at: llvm/lib/Target/AArch64/AArch64FrameLowering.cpp:196
-/// Returns the argument pop size.
-static uint64_t getArgumentPopSize(MachineFunction &MF,
- MachineBasicBlock &MBB) {
+// Returns how much of the incoming argument stack area we should clean up in an
+// epilogue. For the C calling convention this will be 0, for guaranteed tail
----------------
measured in bytes?
================
Comment at: llvm/lib/Target/AArch64/AArch64FrameLowering.cpp:320
} else {
+ assert(AFI->getTailCallReservedStack() == 0 &&
+ "don't know how guaranteed tail calls might work on Win64");
----------------
@compnerd might know?
================
Comment at: llvm/lib/Target/AArch64/AArch64FrameLowering.cpp:1751
+ // may clobber), convert it to a post-index ldp.
+ if (OffsetOp.getImm() == 0 && AfterCSRPopSize >= 0)
convertCalleeSaveRestoreToSPPrePostIncDec(
----------------
What if the pop size is larger than the immediate field in the ldp is able to encode?
================
Comment at: llvm/test/CodeGen/ARM/swifttailcc.ll:3
+
+define float @verify_aapcs_vfp(float %in) {
+; CHECK: vadd.f32 s0, s0, s0
----------------
Is the swifttail attribute implicit here?
Seems like there should be tighter CHECKs for what is expected around the `vadd.f32`.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D95443/new/
https://reviews.llvm.org/D95443
More information about the llvm-commits
mailing list