diff options
author | Nikolay Haustov <Nikolay.Haustov@amd.com> | 2016-05-06 09:15:24 +0000 |
---|---|---|
committer | Nikolay Haustov <Nikolay.Haustov@amd.com> | 2016-05-06 09:15:24 +0000 |
commit | 4961ea85d7c1b476bf15d86f3d3ab722d711eed2 (patch) | |
tree | 7b0c18ef032255fa2d17ac76eccf472e5ec0eb26 /clang/lib/CodeGen | |
parent | 1f7732abfab990d56f3aa7ad4180a292fbf9d4fc (diff) | |
download | bcm5719-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.cpp | 8 |
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(); |