]> granicus.if.org Git - llvm/commit
GlobalISel: correctly handle varargs
authorTim Northover <tnorthover@apple.com>
Tue, 17 Jan 2017 22:30:10 +0000 (22:30 +0000)
committerTim Northover <tnorthover@apple.com>
Tue, 17 Jan 2017 22:30:10 +0000 (22:30 +0000)
commit244264d050259a17c5eb4cceb9c5878d5e714a4e
treed52f3ad99efb2522a899b28841488d3b4c1c3491
parent1d3f42922cbdf76a0b7fb15a3ebbc445da1ca983
GlobalISel: correctly handle varargs

Some platforms (notably iOS) use a different calling convention for unnamed vs
named parameters in varargs functions, so we need to keep track of this
information when translating calls.

Since not many platforms are involved, the guts of the special handling is in
the ValueHandler class (with a generic implementation that should work for most
targets).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292283 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/CodeGen/GlobalISel/CallLowering.h
lib/CodeGen/GlobalISel/CallLowering.cpp
lib/Target/AArch64/AArch64CallLowering.cpp
lib/Target/ARM/ARMCallLowering.cpp
test/CodeGen/AArch64/GlobalISel/arm64-callingconv-ios.ll [new file with mode: 0644]
test/CodeGen/AArch64/GlobalISel/arm64-callingconv.ll