diff options
author | Sven van Haastregt <sven.vanhaastregt@arm.com> | 2022-01-12 13:30:09 +0000 |
---|---|---|
committer | Sven van Haastregt <sven.vanhaastregt@arm.com> | 2022-01-12 13:30:09 +0000 |
commit | 4b85800bfd6ca6c3ecedf68ffbba6c3f2bc9c8ae (patch) | |
tree | a4cdd8df711c5033fd3aff2b2a443011043d8d61 /clang/lib/CodeGen/TargetInfo.cpp | |
parent | 6a605b97a2006bd391f129a606483656b7c6fb28 (diff) | |
download | llvm-4b85800bfd6ca6c3ecedf68ffbba6c3f2bc9c8ae.zip llvm-4b85800bfd6ca6c3ecedf68ffbba6c3f2bc9c8ae.tar.gz llvm-4b85800bfd6ca6c3ecedf68ffbba6c3f2bc9c8ae.tar.bz2 |
[OpenCL] Set external linkage for block enqueue kernels
All kernels can be called from the host as per the SPIR_KERNEL calling
convention. As such, all kernels should have external linkage, but
block enqueue kernels were created with internal linkage.
Reported-by: Pedro Olsen Ferreira
Differential Revision: https://reviews.llvm.org/D115523
Diffstat (limited to 'clang/lib/CodeGen/TargetInfo.cpp')
-rw-r--r-- | clang/lib/CodeGen/TargetInfo.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/clang/lib/CodeGen/TargetInfo.cpp b/clang/lib/CodeGen/TargetInfo.cpp index 2bb68eb..77203ae 100644 --- a/clang/lib/CodeGen/TargetInfo.cpp +++ b/clang/lib/CodeGen/TargetInfo.cpp @@ -11417,7 +11417,7 @@ TargetCodeGenInfo::createEnqueuedBlockKernel(CodeGenFunction &CGF, auto &C = CGF.getLLVMContext(); std::string Name = Invoke->getName().str() + "_kernel"; auto *FT = llvm::FunctionType::get(llvm::Type::getVoidTy(C), ArgTys, false); - auto *F = llvm::Function::Create(FT, llvm::GlobalValue::InternalLinkage, Name, + auto *F = llvm::Function::Create(FT, llvm::GlobalValue::ExternalLinkage, Name, &CGF.CGM.getModule()); auto IP = CGF.Builder.saveIP(); auto *BB = llvm::BasicBlock::Create(C, "entry", F); |