[AArch64] Implement passing SVE vectors by ref for AAPCS.
authorSander de Smalen <sander.desmalen@arm.com>
Mon, 17 Feb 2020 14:27:27 +0000 (14:27 +0000)
committerSander de Smalen <sander.desmalen@arm.com>
Mon, 17 Feb 2020 15:20:28 +0000 (15:20 +0000)
commita7a96c726e884101b09ca8bea1944e2f5b3950e7
tree494c89a4298673f60c91becd7e73be5f6b6f6891
parent0acd7e02f293378aeb2a4e1f8067a79ba5e04e6c
[AArch64] Implement passing SVE vectors by ref for AAPCS.

Summary:
This patch implements the part of the calling convention
where SVE Vectors are passed by reference. This means the
caller must allocate stack space for these objects and
pass the address to the callee.

Reviewers: efriedma, rovka, cameron.mcinally, c-rhodes, rengolin

Reviewed By: efriedma

Subscribers: tschuett, kristof.beyls, hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D71216
llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
llvm/test/CodeGen/AArch64/sve-callbyref-notailcall.ll [new file with mode: 0644]
llvm/test/CodeGen/AArch64/sve-calling-convention-byref.ll [new file with mode: 0644]