aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorShangwu Yao <shangwuyao@gmail.com>2022-04-04 16:52:46 +0000
committerShangwu Yao <shangwuyao@gmail.com>2022-04-05 20:58:32 +0000
commit15a1769631ff0b2b3e830b03e51ae5f54f08a0ab (patch)
tree2ef502a476fab90ed3e3a8c0e822585529bdb277 /clang/lib/Frontend/CompilerInvocation.cpp
parent1acba8a4b5d7bbebf296fc2b154bf9dfb837db52 (diff)
downloadllvm-15a1769631ff0b2b3e830b03e51ae5f54f08a0ab.zip
llvm-15a1769631ff0b2b3e830b03e51ae5f54f08a0ab.tar.gz
llvm-15a1769631ff0b2b3e830b03e51ae5f54f08a0ab.tar.bz2
Emit OpenCL metadata when targeting SPIR-V
This is required for converting function calls such as get_global_id() into SPIR-V builtins. Differential Revision: https://reviews.llvm.org/D123049
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
-rw-r--r--clang/lib/Frontend/CompilerInvocation.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/clang/lib/Frontend/CompilerInvocation.cpp b/clang/lib/Frontend/CompilerInvocation.cpp
index 91adacd..f586f8d 100644
--- a/clang/lib/Frontend/CompilerInvocation.cpp
+++ b/clang/lib/Frontend/CompilerInvocation.cpp
@@ -3328,6 +3328,10 @@ void CompilerInvocation::setLangDefaults(LangOptions &Opts, InputKind IK,
// whereas respecting contract flag in backend.
Opts.setDefaultFPContractMode(LangOptions::FPM_FastHonorPragmas);
} else if (Opts.CUDA) {
+ if (T.isSPIRV()) {
+ // Emit OpenCL version metadata in LLVM IR when targeting SPIR-V.
+ Opts.OpenCLVersion = 200;
+ }
// Allow fuse across statements disregarding pragmas.
Opts.setDefaultFPContractMode(LangOptions::FPM_Fast);
}