]> granicus.if.org Git - llvm/commit
[GlobalISel][CallLowering] Add support for splitting types according to calling conve...
authorAmara Emerson <aemerson@apple.com>
Tue, 3 Sep 2019 21:42:28 +0000 (21:42 +0000)
committerAmara Emerson <aemerson@apple.com>
Tue, 3 Sep 2019 21:42:28 +0000 (21:42 +0000)
commitcf59692a36b7d2885f7ff9a8197fb8c5f1ded46c
tree307a501cdacf11032a46bf4bb009a0b84374b7db
parent1107a9c99434a0d1e380870602a9b0d93dbef4e7
[GlobalISel][CallLowering] Add support for splitting types according to calling conventions.

On AArch64, s128 types have to be split into s64 GPRs when passed as arguments.
This change adds the generic support in call lowering for dealing with multiple
registers, for incoming and outgoing args.

Support for splitting for return types not yet implemented.

Differential Revision: https://reviews.llvm.org/D66180

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@370822 91177308-0d34-0410-b5e6-96231b3b80d8
12 files changed:
include/llvm/CodeGen/GlobalISel/CallLowering.h
include/llvm/CodeGen/GlobalISel/Utils.h
lib/CodeGen/GlobalISel/CallLowering.cpp
lib/CodeGen/GlobalISel/CombinerHelper.cpp
lib/CodeGen/GlobalISel/Utils.cpp
lib/Target/AArch64/AArch64CallLowering.cpp
lib/Target/AMDGPU/AMDGPUCallLowering.cpp
lib/Target/ARM/ARMCallLowering.cpp
lib/Target/Mips/MipsCallLowering.cpp
lib/Target/X86/X86CallLowering.cpp
test/CodeGen/AArch64/GlobalISel/arm64-callingconv.ll
test/CodeGen/AArch64/GlobalISel/arm64-fallback.ll