diff options
author | Nikolay Haustov <Nikolay.Haustov@amd.com> | 2016-06-30 09:06:33 +0000 |
---|---|---|
committer | Nikolay Haustov <Nikolay.Haustov@amd.com> | 2016-06-30 09:06:33 +0000 |
commit | 8c6538b86da704af25a2f47cc8350168f546f555 (patch) | |
tree | a92ab0b682f7261b558f8e174230581b733b1499 /clang/lib/Basic | |
parent | 1df56894f818dd27ad80e37db570516c0f851a87 (diff) | |
download | bcm5719-llvm-8c6538b86da704af25a2f47cc8350168f546f555.tar.gz bcm5719-llvm-8c6538b86da704af25a2f47cc8350168f546f555.zip |
AMDGPU: Set amdgpu_kernel calling convention for OpenCL kernels.
Summary:
Summary:
Change Clang calling convention SpirKernel to OpenCLKernel.
Set calling convention OpenCLKernel for amdgcn as well.
Add virtual method .getOpenCLKernelCallingConv() to TargetCodeGenInfo
and use it to set target calling convention for AMDGPU and SPIR.
Update tests.
Reviewers: rsmith, tstellarAMD, Anastasia, yaxunl
Subscribers: kzhuravl, cfe-commits
Differential Revision: http://reviews.llvm.org/D21367
llvm-svn: 274220
Diffstat (limited to 'clang/lib/Basic')
-rw-r--r-- | clang/lib/Basic/Targets.cpp | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp index 87203f5598c..252f2be7aff 100644 --- a/clang/lib/Basic/Targets.cpp +++ b/clang/lib/Basic/Targets.cpp @@ -2137,6 +2137,16 @@ public: Opts.cl_khr_3d_image_writes = 1; } } + + CallingConvCheckResult checkCallingConvention(CallingConv CC) const override { + switch (CC) { + default: + return CCCR_Warning; + case CC_C: + case CC_OpenCLKernel: + return CCCR_OK; + } + } }; const Builtin::Info AMDGPUTargetInfo::BuiltinInfo[] = { @@ -7927,8 +7937,8 @@ public: } CallingConvCheckResult checkCallingConvention(CallingConv CC) const override { - return (CC == CC_SpirFunction || CC == CC_SpirKernel) ? CCCR_OK - : CCCR_Warning; + return (CC == CC_SpirFunction || CC == CC_OpenCLKernel) ? CCCR_OK + : CCCR_Warning; } CallingConv getDefaultCallingConv(CallingConvMethodType MT) const override { |