[PATCH] D84869: [AArch64][SVE] Disable tail calls if callee does not preserve SVE regs.

Sander de Smalen via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jul 29 09:35:23 PDT 2020


sdesmalen created this revision.
sdesmalen added reviewers: paulwalker-arm, efriedma, david-arm.
Herald added subscribers: danielkiss, psnobl, hiraditya, kristof.beyls, tschuett.
Herald added a reviewer: rengolin.
Herald added a project: LLVM.
sdesmalen requested review of this revision.

This fixes an issue triggered by the following code, where emitEpilogue
got confused when trying to restore the SVE registers after the call,
whereas the call to bar() is implemented as a TCReturn:

  int non_sve();
  int sve(svint32_t x) { return non_sve(); }


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D84869

Files:
  llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
  llvm/lib/Target/AArch64/AArch64RegisterInfo.cpp
  llvm/lib/Target/AArch64/AArch64RegisterInfo.h
  llvm/test/CodeGen/AArch64/sve-tailcall.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D84869.281641.patch
Type: text/x-patch
Size: 11085 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200729/85fbde15/attachment.bin>


More information about the llvm-commits mailing list