diff options
author | Reid Kleckner <reid@kleckner.net> | 2014-10-31 22:00:51 +0000 |
---|---|---|
committer | Reid Kleckner <reid@kleckner.net> | 2014-10-31 22:00:51 +0000 |
commit | 80944df6f478018ae895afb27ebff1ab881d4936 (patch) | |
tree | 10f2ac21b9f143eee54ceecd693525454fdf6044 /clang/lib/Basic/Targets.cpp | |
parent | 49be5b357b10e33b66853259404e6197145de4fe (diff) | |
download | bcm5719-llvm-80944df6f478018ae895afb27ebff1ab881d4936.tar.gz bcm5719-llvm-80944df6f478018ae895afb27ebff1ab881d4936.zip |
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
Diffstat (limited to 'clang/lib/Basic/Targets.cpp')
-rw-r--r-- | clang/lib/Basic/Targets.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp index 587b13fe412..c9c05b845dd 100644 --- a/clang/lib/Basic/Targets.cpp +++ b/clang/lib/Basic/Targets.cpp @@ -3503,6 +3503,7 @@ public: CallingConvCheckResult checkCallingConvention(CallingConv CC) const override { return (CC == CC_C || + CC == CC_X86VectorCall || CC == CC_IntelOclBicc || CC == CC_X86_64Win64) ? CCCR_OK : CCCR_Warning; } @@ -3542,6 +3543,7 @@ public: } CallingConvCheckResult checkCallingConvention(CallingConv CC) const override { return (CC == CC_C || + CC == CC_X86VectorCall || CC == CC_IntelOclBicc || CC == CC_X86_64SysV) ? CCCR_OK : CCCR_Warning; } |