Implement IRGen for the x86 vectorcall convention
authorReid Kleckner <reid@kleckner.net>
Fri, 31 Oct 2014 22:00:51 +0000 (22:00 +0000)
committerReid Kleckner <reid@kleckner.net>
Fri, 31 Oct 2014 22:00:51 +0000 (22:00 +0000)
commit80944df6f478018ae895afb27ebff1ab881d4936
tree10f2ac21b9f143eee54ceecd693525454fdf6044
parent49be5b357b10e33b66853259404e6197145de4fe
Implement IRGen for the x86 vectorcall convention

The most complex aspect of the convention is the handling of homogeneous
vector and floating point aggregates.  Reuse the homogeneous aggregate
classification code that we use on PPC64 and ARM for this.

This convention also has a C mangling, and we apparently implement that
in both Clang and LLVM.

Reviewed By: majnemer

Differential Revision: http://reviews.llvm.org/D6063

llvm-svn: 221006
clang/lib/AST/Mangle.cpp
clang/lib/Basic/Targets.cpp
clang/lib/CodeGen/CGCall.cpp
clang/lib/CodeGen/MicrosoftCXXABI.cpp
clang/lib/CodeGen/TargetInfo.cpp
clang/test/CodeGen/mangle-windows.c
clang/test/CodeGen/microsoft-call-conv.c
clang/test/CodeGen/vectorcall.c [new file with mode: 0644]
clang/test/CodeGenCXX/homogeneous-aggregates.cpp