[all-commits] [llvm/llvm-project] d88f96: ARM: support mandatory tail calls for tailcc & swi...
Tim Northover via All-commits
all-commits at lists.llvm.org
Fri May 28 03:12:25 PDT 2021
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: d88f96dff3f192fc0c1bf57f7810b95a709b3591
https://github.com/llvm/llvm-project/commit/d88f96dff3f192fc0c1bf57f7810b95a709b3591
Author: Tim Northover <t.p.northover at gmail.com>
Date: 2021-05-28 (Fri, 28 May 2021)
Changed paths:
M llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp
M llvm/lib/Target/ARM/ARMCallingConv.td
M llvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp
M llvm/lib/Target/ARM/ARMFastISel.cpp
M llvm/lib/Target/ARM/ARMFrameLowering.cpp
M llvm/lib/Target/ARM/ARMISelLowering.cpp
M llvm/lib/Target/ARM/ARMISelLowering.h
M llvm/lib/Target/ARM/ARMInstrInfo.td
M llvm/lib/Target/ARM/ARMMachineFunctionInfo.h
M llvm/lib/Target/ARM/ARMSubtarget.cpp
M llvm/test/CodeGen/ARM/dbg-tcreturn.ll
A llvm/test/CodeGen/ARM/fastcc-tailcall.ll
M llvm/test/CodeGen/ARM/peephole-callee-save-regalloc.mir
A llvm/test/CodeGen/ARM/swifttailcc-call.ll
A llvm/test/CodeGen/ARM/swifttailcc-fastisel.ll
A llvm/test/CodeGen/ARM/tailcc-call.ll
M llvm/test/CodeGen/ARM/v8m-tail-call.ll
Log Message:
-----------
ARM: support mandatory tail calls for tailcc & swifttailcc
This adds support for callee-pop conventions to the ARM backend so that it can
ensure a call marked "tail" is actually a tail call.
Commit: 9ff2eb1ea596a52ad2b5cfab826548c3af0a1e6e
https://github.com/llvm/llvm-project/commit/9ff2eb1ea596a52ad2b5cfab826548c3af0a1e6e
Author: Tim Northover <t.p.northover at gmail.com>
Date: 2021-05-28 (Fri, 28 May 2021)
Changed paths:
M llvm/docs/LangRef.rst
M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h
M llvm/lib/IR/Verifier.cpp
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/lib/Target/ARM/ARMISelLowering.cpp
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/AArch64/swifttail-call.ll
A llvm/test/CodeGen/AArch64/tailcc-notail.ll
A llvm/test/CodeGen/ARM/tailcc-notail.ll
M llvm/test/CodeGen/X86/tailcall-swifttailcc.ll
A llvm/test/CodeGen/X86/tailcc-notail.ll
A llvm/test/Verifier/swifttailcc-musttail-valid.ll
A llvm/test/Verifier/swifttailcc-musttail.ll
A llvm/test/Verifier/tailcc-musttail.ll
Log Message:
-----------
SwiftTailCC: teach verifier musttail rules applicable to this CC.
SwiftTailCC has a different set of requirements than the C calling convention
for a tail call. The exact argument sequence doesn't have to match, but fewer
ABI-affecting attributes are allowed.
Also make sure the musttail diagnostic triggers if a musttail call isn't
actually a tail call.
Compare: https://github.com/llvm/llvm-project/compare/66ff1cbd71d2...9ff2eb1ea596
More information about the All-commits
mailing list