summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen
diff options
context:
space:
mode:
authorNikolay Haustov <Nikolay.Haustov@amd.com>2016-05-06 09:15:24 +0000
committerNikolay Haustov <Nikolay.Haustov@amd.com>2016-05-06 09:15:24 +0000
commit4961ea85d7c1b476bf15d86f3d3ab722d711eed2 (patch)
tree7b0c18ef032255fa2d17ac76eccf472e5ec0eb26 /clang/lib/CodeGen
parent1f7732abfab990d56f3aa7ad4180a292fbf9d4fc (diff)
downloadbcm5719-llvm-4961ea85d7c1b476bf15d86f3d3ab722d711eed2.tar.gz
bcm5719-llvm-4961ea85d7c1b476bf15d86f3d3ab722d711eed2.zip
AMDGPU/SI: Use amdgpu_kernel calling convention for OpenCL kernels.
Reviewers: tstellarAMD, arsenm Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D19918 llvm-svn: 268718
Diffstat (limited to 'clang/lib/CodeGen')
-rw-r--r--clang/lib/CodeGen/TargetInfo.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/clang/lib/CodeGen/TargetInfo.cpp b/clang/lib/CodeGen/TargetInfo.cpp
index 4ee85730497..4448057a37f 100644
--- a/clang/lib/CodeGen/TargetInfo.cpp
+++ b/clang/lib/CodeGen/TargetInfo.cpp
@@ -6826,6 +6826,14 @@ void AMDGPUTargetCodeGenInfo::setTargetAttributes(
if (!FD)
return;
+ if (M.getLangOpts().OpenCL) {
+ if (FD->hasAttr<OpenCLKernelAttr>()) {
+ // Set amdgpu_kernel calling convention for OpenCL kernels.
+ llvm::Function *Fn = cast<llvm::Function>(GV);
+ Fn->setCallingConv(llvm::CallingConv::AMDGPU_KERNEL);
+ }
+ }
+
if (const auto Attr = FD->getAttr<AMDGPUNumVGPRAttr>()) {
llvm::Function *F = cast<llvm::Function>(GV);
uint32_t NumVGPR = Attr->getNumVGPR();
OpenPOWER on IntegriCloud