yaxunl added inline comments.

================
Comment at: lib/Sema/SemaExpr.cpp:3431
@@ -3410,1 +3430,3 @@
+                        .getSupportedOpenCLOpts()
+                        .cl_khr_fp64) ||
                    getOpenCLOptions().cl_khr_fp64)) {
----------------
neil.hickey wrote:
> yaxunl wrote:
> > This check 
> >   (getLangOpts().OpenCLVersion >= 120 &&
> >                     Context.getTargetInfo()
> >                         .getSupportedOpenCLOpts()
> >                         .cl_khr_fp64)
> > 
> > is redundant since for CL 1.2 and above getOpenCLOptions().cl_khr_fp64 is 
> > set to be true by default.
> This is get**Supported**OpenCLOpts(). Some hardware may not support doubles
In Sema::Initialize(), there is code to initialize enabled extensions:

```
  // Initialize predefined OpenCL types and supported optional core features.
  if (getLangOpts().OpenCL) {
#define OPENCLEXT(Ext) \
     if 
(Context.getTargetInfo().getSupportedOpenCLOpts().is_##Ext##_supported_core( \
         getLangOpts().OpenCLVersion)) \
       getOpenCLOptions().Ext = 1;
#include "clang/Basic/OpenCLExtensions.def"

```
`is_##Ext##_supported_core` accounts for two factors: 1. whether the target 
supports the extension; 2. whether the extension has become OpenCL core featrue.

Since getOpenCLOptions().cl_khr_fp64 is initialized with the same value as in 
the mentioned check, the check is redundant.


https://reviews.llvm.org/D24235



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to