[PATCH] D96524: [OpenCL] Add support of OpenCL C 3.0 __opencl_c_fp64
Anastasia Stulova via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Mon May 10 07:56:53 PDT 2021
Anastasia added inline comments.
================
Comment at: clang/include/clang/Basic/DiagnosticCommonKinds.td:369
+def err_opencl_extension_and_feature_differs : Error<
+ "Options %0 and %1 are set to different values which is illegal in OpenCL C 3.0">;
}
----------------
We don't normally start from the upper case:
`Options` -> `options`
I am thinking we could drop "which is illegal in OpenCL C 3.0" because the fact that compiler gives an error indicates that it is illegal. So I find it a bit redundant.
================
Comment at: clang/include/clang/Basic/DiagnosticSemaKinds.td:121
def warn_double_const_requires_fp64 : Warning<
- "double precision constant requires cl_khr_fp64, casting to single precision">;
+ "double precision constant requires %select{cl_khr_fp64|__opencl_c_fp64}0, "
+ "casting to single precision">;
----------------
I am thinking that in OpenCL 3 both `cl_khr_fp64` and `__opencl_c_fp64` are required. Maybe we should re-word this as follows?
================
Comment at: clang/lib/Sema/Sema.cpp:306
+ // Set conditionally to provide correct diagnostics for 'double' type
+ llvm::StringRef FP64Feature(
+ getLangOpts().OpenCLVersion >= 300 ? "__opencl_c_fp64" : "cl_khr_fp64");
----------------
Technically both "__opencl_c_fp64" and "cl_khr_fp64" are required in OpenCL, perhaps we should report both in OpenCL 3?
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D96524/new/
https://reviews.llvm.org/D96524
More information about the cfe-commits
mailing list